我有以下文件夹结构
A
|-B
| |-C
| |-1.log
| |-2.log
|-10.log
|-D
|-E
|-F
|-php.log
|-H
|-php.log
我想收集 H 子目录中存在的所有日志文件和 php 文件并将其制作为 tar.gz 文件。
我尝试过tar -czf temp.tar.gz /A/**/*.log /A/D/F/H/php.log
,但似乎没有在A
目录中递归搜索。
我正在使用亚马逊Linux
答案1
不要依赖通配符匹配/shell 通配符,而是使用命令find
查找并列出所需的文件并将该列表发送tar
到存档:
find /A/ -type f -print0 -name \*.log | tar -cvf /path/to/file.tar --null -T -
答案2
以下命令将从“.”开始,在所有目录结构中递归地压缩所有 .log 文件。父目录,如果您想要特定文件,只需使用 grep 进行过滤:
tar -cvf file.tar `find . -type f -name *.log`