Tar exclui não está funcionando?

3
tar -cvf file.tar --exclude=thumbs/ \
                  --exclude=uploads_event/ \
                  --exclude=uploads_forum/ \
                  --exclude=uploads_admin/ \
                  --exclude=uploads_userpoints/ \
                  --exclude=uploads_group/ \
                  --exclude=up_old/ \
                  --exclude=uploads_user/ \
                  --exclude=uploads_wall/ \
                  directory_to_tar/

Eu estou errado? Tentando tar diretório inteiro, mas excluir todos os diretórios e quaisquer arquivos nessas pastas completamente.

    
por Andrew Fashion 07.01.2011 / 20:13

2 respostas

7

Com o GNU tar você não pode incluir a barra final em todas as exclusões. Funcionaria com o BSD, no entanto.

    
por 07.01.2011 / 20:28
2

A resposta de Michael Lowman deve ser aceita, mas desde que eu fiz alguns exemplos de qualquer maneira eu vou generalizar e deixar, talvez alguém encontre valor nela.

Para repetir a resposta de Michael, parece que as barras finais nas suas opções --exclude são o seu problema.

Eu também notarei que quando você tem uma tonelada de coisas para excluir, pode ser mais fácil colocá-lo em um arquivo e apenas incluir o arquivo com a opção -X.

Aqui estão alguns exemplos práticos de uso de --exclude e -X

g3 0 /home/jj33/swap/t > mkdir -p dir/d1 dir/d2
g3 0 /home/jj33/swap/t > touch dir/{d1,d2}/{f1,f2,f3}
g3 0 /home/jj33/swap/t > find . -type f
./dir/d1/f1
./dir/d1/f2
./dir/d1/f3
./dir/d2/f1
./dir/d2/f2
./dir/d2/f3

#### using the trailing slash, as in your question, doesn't work:
g3 0 /home/jj33/swap/t > tar -cvf file.tar --exclude=d1/f2 --exclude=d2/ dir
dir/
dir/d1/
dir/d1/f1
dir/d1/f3
dir/d2/
dir/d2/f1
dir/d2/f2
dir/d2/f3

# removing the / works better
g3 0 /home/jj33/swap/t > tar -cvf file.tar --exclude=d1/f2 --exclude=d2 dir      
dir/
dir/d1/
dir/d1/f1
dir/d1/f3

# example using a file and -X
g3 0 /home/jj33/swap/t > echo d1/f2 >exclude.txt
g3 0 /home/jj33/swap/t > echo d2 >>exclude.txt  
g3 0 /home/jj33/swap/t > cat exclude.txt 
d1/f2
d2
g3 0 /home/jj33/swap/t > tar -cvf file.tar -X exclude.txt  dir              
dir/
dir/d1/
dir/d1/f1
dir/d1/f3
g3 0 /home/jj33/swap/t >
    
por 07.01.2011 / 20:31

Tags