Batch 7zip은 모든 파일을 디렉토리에 개별적으로 저장합니다(Centos 7.6).

Batch 7zip은 모든 파일을 디렉토리에 개별적으로 저장합니다(Centos 7.6).

Linux Centos 7.6에서 디렉토리의 모든 파일을 파일당 개별 아카이브로 압축하려고 합니다. 한동안 찾아보았지만 길을 찾을 수 없었습니다.

답변1

최상위 디렉토리 안팎의 모든 일반 파일에 대해 이 작업을 재귀적으로 수행한다고 가정해 보겠습니다 $topdir.

find "$topdir" -type f -exec 7za a {} {} \;

다음을 포함하는 단일 디렉토리의 경우오직압축하려는 파일의 경우 다음을 사용합니다.

for pathname in "$topdir"/*; do
    7za a "$pathname" "$pathname"
done

여기서 차이점은 숨겨진 파일은 압축되지 않는다는 것입니다. with dotglob에서 bash쉘 옵션을 활성화 하면 shopt -s dotglob루프에 숨겨진 이름이 포함됩니다.

(입력이 줄어듭니다)를 사용하면 find다음을 사용하여 단일 디렉터리의 파일을 처리할 수 있습니다.

find "$topdir" -maxdepth 1 -type f -exec 7za a {} {} \;

관련 정보