在Unix中如何在目录树(包括其所有子目录)中创建包含具有给定扩展名的所有文件的压缩存档(tar.gz)?
这样的事情:
ls -lR | grep <ext> | tar xxxx file.tar.gz
答案 0 :(得分:1)
你的意思是:
find -name '*.ext' -exec tar -rzf file.tar.gz {} +
-name '*.ext'
查找.ext
后缀-exec ... {} +
表示执行命令,所有找到的文件作为参数传递,tar -rzf file.tar.gz
表示将文件附加到file.tar.gz
。如果参数列表太长,它会'追加',并且tar
调用需要拆分。 -r
用于附加,-z
用于gzip-compress,-f
用于指定存档文件名。请注意,如果已存在file.tar.gz
,则需要先rm
。
答案 1 :(得分:0)
find your_path -type f -name "*.your_ext" | xargs tar -czf your_file.tar.gz