Linux:如何将select的文件扩展名存档在未知的树中

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

示例备份recursion树中的所有.foo和.bar文件,但不备份其他未知文件types。

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

谢谢

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

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

尝试这样的事情:

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

您可以通过find命令生成文件列表,然后将其传递给xargs和tar。