find -iname '*.php' -print0 | xargs -0 tar -rf php_backup.tar
Isso usa a segunda resposta à qual você vinculou, mas substitui o -c
por -r
De 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.
Outra opção seria substituir o -print0 por -exec. Acho que isso será mais eficiente, mas pode ser quebrado se você tiver milhares ou dez de milhares de arquivos.
[Editar]
1) O -print0 e -0 após xargs são necessários apenas se você tiver separadores inconvenientes em seus nomes de arquivos. (leia nomes com espaços). Você pode não precisar disso.
2) Eu verifiquei o comando novamente e testei. find /public_www -name '*.php' -print | xargs
alimenta uma única linha para xargs. Assim, o exemplo ao qual você se vinculou se traduz em algo como xargs -0 tar -cf docs.tar *.php
e também deve funcionar.