Crie um arquivo tar do diretório atual sem período anterior

8

Quando faço o seguinte:

tar czvf ../myarchive.tar.gz ./

Eu recebo uma única pasta-raiz (chata) no meu arquivo tar:

Como faço para remover este período terrível ao criar o arquivo?

    
por Naftuli Kay 12.07.2014 / 00:21

2 respostas

4

Você não faz isso.

name=${PWD##*/}
cd ..
tar czf "$name.tar.gz" "$name"

(Nota: isso não funciona se o seu shell tiver ativado o rastreamento do link simbólico do diretório atual e o diretório atual for acessado por meio de um link simbólico).

Sim, não foi isso que você pediu, mas é isso que você deve fazer. Arquivos que expandem muitos arquivos no diretório atual são irritantes: colocam o fardo de criar um diretório de destino para o arquivo em cada pessoa que desempacota o arquivo, e se eles descompactá-los acidentalmente em um diretório não vazio, é difícil Limpar. Na maioria das vezes, um arquivo deve criar um único diretório de nível superior cujo nome é o nome base do arquivo.

    
por 13.07.2014 / 02:01
4

O ponto aparece porque tar cria a estrutura do caminho da maneira como você fornece os argumentos. Então, como você deu . como a fonte, o arquivo também é criado na mesma estrutura.

Você pode tentar isso e verificar:

tar -czvf ../myarchive.tar.gz *

Atualizando a resposta com a ajuda do comentário de n.st

tar --xform s:'./':: -czvf ../myarchive.tar.gz ./

    
por 12.07.2014 / 00:46

Tags