Deseja extrair um único arquivo ou pasta de um arquivo TAR ou TAR.GZ? Veja como você pode fazer isso no Linux, usando o comando tar.
Um tarball (TAR ou TAR.GZ) é um conjunto de arquivos agrupados em um único arquivo, facilitando o armazenamento e a transferência de um grande número de arquivos localmente ou pela Internet. Sempre que precisar dos arquivos, basta extrair o arquivo.
Considere um cenário em que você só precisa de um único arquivo de um arquivo grande. Nesse caso, em vez de extrair o arquivo inteiro, você pode extrair apenas o arquivo necessário. Vejamos como.
Ver o conteúdo de um Tarball
Se você deseja apenas visualizar o conteúdo de um arquivo TAR ou TAR.GZ, você não precisa extraí-lo. Em vez disso, use o seguinte comando para ver o que está dentro:
tar -tvf [arquivo.tar]
tar -ztvf [archive.tar.gz]
Isso imprimirá a lista de todos os arquivos e diretórios dentro do arquivo.
Extrair um único arquivo do Tarball
Para extrair um único arquivo de TAR ou TAR.GZ, use o seguinte formato de comando:
tar -xvf [archive.tar] [caminho para o arquivo]
tar -zxvf [archive.tar.gz] [caminho para o arquivo]
Lembre-se, você terá que fornecer o caminho completo para o arquivo que deseja extrair. Você pode encontrar o caminho completo do arquivo ou diretório usando o tar -tvf [arquivo.tar] comando.
Para extrair um arquivo teste1.txt de test.tar e teste.tar.gz arquivos, os comandos seriam:
tar -xvf teste.tar teste1.txt
tar -zxvf teste.tar.gz teste1.txt
...onde:
- -x é usado para extrair arquivos do arquivo
- -v é usado para ver o progresso enquanto eles estão sendo extraídos
- -f é usado para especificar o nome do tarball
- -z é usado para descompactar arquivos TAR.GZ
Esses comandos extrairão o arquivo especificado no diretório do terminal atual.
Extrair um único diretório do Tarball
Da mesma forma, você também pode extrair um único diretório de um tarball usando a seguinte sintaxe:
tar xvf [archive.tar] [caminho para o diretório]
tar -zxvf [archive.tar.gz] [caminho para o diretório]
Por exemplo, para extrair um arquivo inteiro teste1 subdiretório do test.tar archive, você precisará fornecer o caminho completo do diretório, ou seja, teste/teste1:
tar -xvf teste.tar teste/teste1
Isso extrairá todo o subdiretório teste/teste1 no diretório do terminal atual.
Extraia um único arquivo ou pasta para um diretório diferente
Você também pode extrair um arquivo ou diretório de um tarball para um diretório diferente. Para isso, use a mesma sintaxe acima, mas adicione o -C opção seguida pelo diretório de destino:
tar -xvf [arquivo.tar] -C [diretório_de_destino] [arquivo ou diretório]
tar -zxvf [archive.tar.gz] -C [destination_directory] [file-or-directory]
Digamos que queremos extrair um diretório teste2 de test.tar arquivo para o Transferências diretório em vez do diretório de trabalho atual. O comando, neste caso, seria:
tar -xvf test.tar -C ~/Downloads/test/test2
Excluir um único arquivo ou diretório de um Tarball
Se você precisar excluir um único arquivo ou diretório de um arquivo TAR ou TAR.GZ, use o --excluir opção com o comando tar:
tar -vf [archive.tar] --delete [arquivo ou diretório]
No entanto, você não pode excluir um arquivo ou diretório diretamente de um tarball compactado (TAR.GZ). O que você precisa fazer é primeiro descompactar o arquivo TAR.GZ, excluir o arquivo ou diretório e, em seguida, recompactá-lo.
Para descompactar o arquivo TAR.GZ, use o seguinte comando:
gzip -d [arquivo.tar.gz]
Descompactá-lo irá converter o arquivo em um TAR. Agora você pode excluir o arquivo do arquivo TAR usando:
tar -vf [archive.tar] --delete [arquivo ou diretório]
Depois disso, recompacte o arquivo TAR usando gzip:
gzip -f [arquivo.tar]
Economize tempo ao trabalhar com arquivos no Linux
Extrair apenas os arquivos necessários de um arquivo não apenas evita a confusão, mas também economiza tempo que, de outra forma, seria gasto pesquisando um grande número de arquivos.
Às vezes, criar e extrair arquivos TAR resulta em arquivos duplicados em seu sistema. Portanto, é uma boa prática identificar e remover essas duplicatas periodicamente para organizar seu espaço.