在 Unix 中,如何在目录树(包括其所有子目录)中创建包含所有文件的压缩存档(tar.gz)?
像这样的东西:
ls -lR | grep <ext> | tar xxxx file.tar.gz
你的意思是:
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
它。
find your_path -type f -name "*.your_ext" | xargs tar -czf your_file.tar.gz