Isso faz o truque, nenhum arquivo de comparação é necessário:
find myProjectDirectory -type f \( -name \*\.php -o -name \*\.js -o -name \*\.css -o -name \*\.inc \) | xargs tar -rf myProjectTarName.tar
Siga as instruções aqui: link
Eu pretendo criar um diretório, mas só quero incluir arquivos .php desse diretório.
Dadas as instruções acima mencionadas, eu criei este comando. Ele cria um arquivo chamado IncludeTheseFiles que lista todos os arquivos .php, então o tar deve fazer seu trabalho usando apenas os arquivos listados em IncludeTheseFiles
find myProjectDirectory -type f -print | \
egrep '(\.[php]|[Mm]akefile)$' > IncludeTheseFiles
tar cvf myProjectTarName -I IncludeTheseFiles
No entanto, quando executo isso, não gosta da opção "Incluir"?
tar: invalid option -- I
Isso faz o truque, nenhum arquivo de comparação é necessário:
find myProjectDirectory -type f \( -name \*\.php -o -name \*\.js -o -name \*\.css -o -name \*\.inc \) | xargs tar -rf myProjectTarName.tar
Lendo a página man do Gnu tar no meu sistema Ubuntu 8.04, ele diz:
-T, --files-from F
get names to extract or archive from file F
Ele não faz referência a uma opção -I
além de mencionar que historicamente foi usado para solicitar a compactação bzip.
Você deve ser capaz de especificar stdin como a fonte dos seus nomes de arquivos. Experimente:
find myProjectDirectory -type f -regextype posix-egrep -regex ".*/(.*\.[php]|[Mm]akefile)$ -print | \
tar cvf myProjectTarName --files-from=-