Linux:如何将选定的文件扩展名存档到未知树中

Linux:如何将选定的文件扩展名存档到未知树中

将选定文件扩展名存档在未知树中的最佳方法是什么。我无法使用 tar/gzip/rsync 中的排除选项,因为不可能排除所有可能的扩展名变体。

示例备份递归树中的所有 .foo 和 .bar 文件,但不备份其他未知文件类型。

我认为这需要 ls/find、grep 和 tar/gzip 的组合。

谢谢

答案1

非常类似于dmourati 的回答,但没有 xargs。

find /path/to/tree \( -name "*.foo" -o -name "*.bar" \) -print0 | tar -T /dev/stdin --null -cvzf foobar.tar.gz

答案2

尝试这样的操作:

find /path/to/tree \( -name "*.foo" -o -name "*.bar" \) -print0 | xargs -r0 tar cvzf foobar.tar.gz

您通过 find 命令生成文件列表,然后将其通过管道传输到 xargs 并传输到 tar。

相关内容