Excluindo arquivos e diretórios do tar

1

Por que o comando tar -cvpzf backup_140128.tar.gz --exclude=/backup_140128.tar.gz --exclude=/temp_intel * não exclui o diretório /temp_intel ?

    
por user94858 28.01.2015 / 18:15

1 resposta

1

Se você estiver executando isso a partir de / , o * listará os diretórios sem a barra inicial. Tente você mesmo; do for dir in *; do echo $dir; done .

Isso é exatamente o que tar verá e, claramente, temp_intel não corresponde à expressão /temp_intel dada a --exclude. Na verdade, eu suspeito que backup_140128.tar.gz, se presente, também não esteja sendo excluído.

Então, três opções (eu não tentei nenhuma delas, isso é teórico):

  1. Force a adição da barra usando /* em sua linha de comando do TAR.
  2. Use --exclude=temp_intel para corresponder (supondo que você não tenha mais nenhum diretório temp_intel que queira excluir).
  3. Jogue com a opção --anchored no tar, a descrição não foi muito clara, mas acho que ela pode remover o primeiro / antes de fazer a comparação.
por roadmr 28.01.2015 / 19:00