我正在尝试压缩特定文件:
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