Diretório Tar para o arquivo no diretório que está sendo tarado

0

Eu tenho um ponto de montagem, /media/xvdf1 , que eu uso bindfs para montar em /var/lib/jenkins/jobs com user / group jenkins . Desejo fazer backup, mas não tenho espaço suficiente na outra partição. Após a tarring, o arquivo deve ser enviado para o S3 usando aws s3 cp .

Meu problema é que se eu usar o tar para criar o arquivo, ele tentará colocar o arquivo no qual está gravando.

Não existe uma maneira de o tar evitar tarigar sua própria saída?

    
por Janus Troelsen 09.09.2016 / 19:12

2 respostas

2

Você pode usar --exclude=pattern se precisar, embora não saiba ao certo como está indo onde precisa fazer isso.

Executando o seguinte:

tar -cf test.tar .

Eu recebo a mensagem:

tar: ./test.tar: file is the archive; not dumped

mas talvez seja apenas uma extensão do GNU, embora minha versão do BSD forneça um

tar: ./test.tar: Can't add archive to itself

Ainda assim, você poderia dizer explicitamente para ignorá-lo com

tar -cf test.tar --exclude=./test.tar .
    
por 09.09.2016 / 20:05
1

Também encontro um problema semelhante.

Pode funcionar assim, no exemplo

tar -cf test.tar .

Você está pedindo para o tar arquivar . e, em seguida, tar criar um arquivo "vazio" test.tar para armazenar o conteúdo. Mas o ponto é que test.tar também faz parte do diretório . . Parece um pouco como recursivo infinito. De qualquer forma, tar parece bastante inteligente e evita isso, já que na maioria dos casos não é isso que você quer.

Além de usar --exclude , você também pode tentar

tar -cf test.tar ./*

Dessa forma, você está pedindo para o tar arquivar (quase) todos os arquivos em . antes que o comando seja executado, observe que test.tar não está incluído.

    
por 26.04.2018 / 14:30