Muito semelhante a resposta do dmourati , mas sem xargs.
find /path/to/tree \( -name "*.foo" -o -name "*.bar" \) -print0 | tar -T /dev/stdin --null -cvzf foobar.tar.gz
Qual é a melhor maneira de arquivar as extensões de arquivos selecionados em uma árvore desconhecida. Não consigo usar opções de exclusão em tar / gzip / rsync, pois seria impossível excluir todas as variações de extensão possíveis.
Exemplo para fazer backup de todos os arquivos .foo e .bar em uma árvore recursiva, mas não em outros tipos de arquivos desconhecidos.
Eu presumo que isso precisa ser uma combinação de ls / find, grep e tar / gzip.
Obrigado
Muito semelhante a resposta do dmourati , mas sem xargs.
find /path/to/tree \( -name "*.foo" -o -name "*.bar" \) -print0 | tar -T /dev/stdin --null -cvzf foobar.tar.gz
Tente algo assim:
find /path/to/tree \( -name "*.foo" -o -name "*.bar" \) -print0 | xargs -r0 tar cvzf foobar.tar.gz
Você gera a lista de arquivos por meio do comando find e canaliza isso para xargs e para tar.