tar um diretório e incluir apenas certos tipos de arquivos

1

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
    
por Susan 30.03.2010 / 19:51

3 respostas

3

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
    
por 30.03.2010 / 20:15
1

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.

    
por 30.03.2010 / 20:18
1

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=-
    
por 30.03.2010 / 20:19