将所有<ext>文件复制到tar.gz文件</ext>

时间:2012-08-24 08:14:34

标签: unix grep tar

在Unix中如何在目录树(包括其所有子目录)中创建包含具有给定扩展名的所有文件的压缩存档(tar.gz)?

这样的事情:

ls -lR | grep <ext> | tar xxxx file.tar.gz

2 个答案:

答案 0 :(得分:1)

你的意思是:

find -name '*.ext' -exec tar -rzf file.tar.gz {} +

  1. -name '*.ext'查找.ext后缀
  2. 的所有文件
  3. -exec ... {} +表示执行命令,所有找到的文件作为参数传递,
  4. tar -rzf file.tar.gz表示文件附加到file.tar.gz。如果参数列表太长,它会'追加',并且tar调用需要拆分。 -r用于附加,-z用于gzip-compress,-f用于指定存档文件名。
  5. 请注意,如果已存在file.tar.gz,则需要先rm

答案 1 :(得分:0)

find your_path -type f -name "*.your_ext" | xargs tar -czf your_file.tar.gz