Cria um arquivo tar que extrai apenas os arquivos e não cria pasta durante o extrato

0

Eu tenho uma pasta com arquivos que eu quero zipar em um arquivo tar.gz. Eu estou usando o seguinte comando:

tar -czvf filename.tar.gz  foldername

Com certeza, isso cria o arquivo filename.tar.gz . No entanto, quando descompacte o arquivo tar, por padrão ele cria uma pasta filename e coloca todos os arquivos na pasta.

Posso evitar a criação dessa pasta quando eu criar o próprio arquivo tar. Eu tentei o seguinte comando, mas não funciona.

tar -czv filename.tar.gz  foldername

Estou usando o Ubuntu 14.04.

Minha estrutura de diretórios atual é a seguinte:

~/Test/foldername

O nome da pasta directory tem todos os arquivos que eu quero zipar. Meus códigos são os seguintes:

cd Test
tar czvf filename.tar foldername/*
    
por popeye 15.01.2018 / 07:48

1 resposta

2

Outra maneira é utilizar o argumento de linha de comando -C , como a seguir:

tar czvf filename.tar.gz -C foldername .

Observe o . final, que informa tar para incluir "este diretório" depois de ter cd -ed em foldername em virtude do argumento -C foldername .

Você acaba com nomes no arquivo tar começando com ./ em vez de foldername/ e, assim, descompactam no diretório de trabalho atual.

Se, por outro lado, você tiver um arquivo tar com nomes como foldername/X e quiser descompactá-lo sem o primeiro componente de diretório, o argumento --strip-components=1 será seu amigo. Assim, o comando untar pode ser:

tar xzf filename.tar.gz --strip-components=1

Por esse argumento, o primeiro componente de diretório de todos os nomes de caminho é "eliminado" durante o desarquivamento. Confira man tar para todos os detalhes.

    
por 15.01.2018 / 08:07

Tags