tar - excluir não funciona

3

Eu deveria arquivar um diretório com tar e excluir alguns arquivos. Eu tenho um diretório $ HOME / java que inclui alguns arquivos .java e .class. O que eu quero fazer é excluir todos os arquivos .class usando a opção -X exclude.

Eu criei um arquivo Excluir usando o find

$ find $HOME/java -name "*.class" > Exclude

Em seguida, tentou arquivar o diretório

$ tar -cvfX java.tar Exclude $HOME/java

Mas de alguma forma não faz a exclusão. A versão do tar no Solaris não suporta exclusão pelo nome.

    
por user27076 28.06.2010 / 13:52

5 respostas

3
 tar -cvf java.tar --exclude="*.class" $HOME/java

Das man páginas:

--exclude pattern

    Do not process files or directories that match the specified pattern.  
    Note that exclusions take precedence over patterns or filenames 
    specified on the command line.
    
por 28.06.2010 / 13:55
4

Sua sintaxe está perfeitamente correta para a versão do tar do Solaris, na verdade, tentei no Solaris 8 e 10 como usuário raiz e não raiz.

Tem certeza de que não foi excluído? No modo verbose -v, o arquivo excluído ainda está listado e diz "excluded" em vez do tamanho como o último campo.

Existe alguma mensagem de erro? Se não for possível encontrar ou ler o arquivo de exclusão, ele dirá ...

 tar c[BDeEFhilnopPqTvw@[0-7]][bfk][X...] [blocksize]
     [tarfile] [size] [exclude-file]...
     {file | -I include-file | -C directory file}...
    
por 28.06.2010 / 18:25
1

Tar tem uma opção para excluir arquivos por padrão de nome. Tente isso em vez disso.

Se você quiser usar um arquivo de exclusão, verifique se os caminhos (ou seja, aqueles que tar produzem e os que estão no arquivo) são exatamente os mesmos. Então, enquanto "a // b" é o mesmo que "a / b" na linha de comando, é diferente para tar .

    
por 28.06.2010 / 13:54
1

Se você realmente quiser usar a opção -X, tente isto:

tar -cvf java.tar -X Exclude $HOME/java
    
por 28.06.2010 / 13:59
1

Observe que, se você precisar cuidar de caminhos relativos.

Então, você precisa usar ./fileToExclude no arquivo Exclude - não o nome completo do arquivo de caminho.

    
por 20.07.2012 / 12:22