
特定のファイルを圧縮しようとしています:
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
どこで間違いを犯したのでしょうか?
編集済み: chronitis によって書かれた回答では、tar が再作成される場合があり、出力は次のようになります。
/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