압축된 디렉터리

압축된 디렉터리

2일이 지난 디렉토리를 압축( tar또는 gzip) 하고 싶습니다 . zip다음 파일이 있습니다. 각 디렉터리에는 여러 개의 하위 디렉터리와 파일이 있습니다.

Oct 21 13:01 test1
Oct 22 13:01 test2 

원하는 출력:

   test1.tar
   test2.tar

아래 명령을 작성해 보았지만 작동하지 않습니다.

   find . -type d -maxdepth 1 -mtime +2 \! -name '*.gz' -exec gzip {} \;

다음 오류가 발생합니다.

   gzip:test1.tar is a directory -- ignored
   gzip:test2.tar is a directory -- ignored

답변1

gzip은 파일만 압축할 수 있으므로 gzip 압축 전에 먼저 디렉터리를 tar해야 합니다.

당신이 원하는 것은 tar"z", "z" 압축과 함께 GNU를 사용하는 것입니다:

find . -type d -maxdepth 1 -mtime +2 \! -name '*.gz' -exec tar cfz {}.tgz {} \;

댓글 후 수정:

나는 이것이 일반적인 상황에서 중복된다는 것을 알지 못했습니다 \! -name '*.gz'... 디렉토리 이름이 .gz.

find . -type d -maxdepth 1 -mtime +2 -exec tar cfz {}.tgz {} \;

답변2

사용tar보관 유틸리티:

find . -type d -maxdepth 1 -mtime +2 ! -name '*.gz' -exec tar -czvf old_dirs.gz '{}' +;

-exec command {} +
-exec작업의 변형은 선택한 파일에 대해 지정된 명령을 실행하지만 명령줄은 선택한 각 파일 이름을 끝에 추가하여 작성됩니다.훨씬 적은 일치하는 파일 수보다.

관련 정보