在 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