tar 多个不同子目录中的特定文件

tar 多个不同子目录中的特定文件

我有以下文件夹结构

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`

相关内容