答案1
find -iname '*.php' -print0 | xargs -0 tar -rf php_backup.tar
这使用了你链接到的第二个答案,但-c
用-r
来自 man tar:
-c Create a new archive containing the specified items. -r Like -c, but new entries are appended to the archive. Note that this only works on uncompressed archives stored in regular files. The -f option is required.
另一个选择是用 -exec 替换 -print0。我认为这会更有效,但如果您有数千或数万个文件,它可能会崩溃。
[编辑]
1) 仅当您的文件名中有不方便的分隔符时,才需要 xargs 后面的 -print0 和 -0。(读取带有空格的名称)。您可能不需要它们。
2) 我再次检查了该命令并进行了测试。find /public_www -name '*.php' -print | xargs
向 xargs 提供一行。因此,您链接的示例转换为类似 的内容xargs -0 tar -cf docs.tar *.php
,并且也应该有效。