
특정 파일을 압축하려고 합니다.
find /media/mount/storage -newermt "2013-08-01 00:00:00" -path '*/*wind.txt' -print0 | xargs -0 gzip -l >> file_system.tar.gz
하지만 다음과 같은 오류가 발생합니다.
gzip: /media/mount/storage/20130811120802_RHI1/20130811121000_wind.txt: not in gzip format
어디서 실수를 합니까?
편집됨: 만성염이 작성한 답변으로 때때로 타르가 다시 생성되면 다음과 같은 결과가 나타납니다.
/media/mount/storage/File system/20130505082135_CT1/20130505090000_wind.txt
/media/mount/storage/File system/20130505085301_CT1/20130505090000_wind.txt
tar: Removing leading `/' from member names <- the size of the tar became zero
/media/mount/storageFile system/20130505085301_CT1/20130505091000_wind.txt
/media/mount/storageFile system/20130505085301_CT1/20130505092000_wind.txt
답변1
나는 당신이 원하는 것은 명령이 find
찾는 모든 파일을 포함하는 gzip으로 압축된 tar 아카이브를 만드는 것이라고 가정합니다(각 파일을 개별적으로 gzip으로 압축하는 것과 반대).
위 명령에는 몇 가지 문제가 있습니다.
gzip -l
기존 아카이브를 수락하고 내용을 인쇄합니다.gzip
자체적으로는 tar 아카이브(여러 파일의 컨테이너)를 생성하지 않고 각 파일을 개별적으로 압축합니다.
아마도 당신이 원하는 것은 다음과 같습니다:
find [conditions] -print0 | xargs -0 tar -zcf filesystem.tar.gz