如何将 find 命令与 gzip 结合起来

如何将 find 命令与 gzip 结合起来

我正在尝试压缩特定文件:

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

相关内容