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. Vamos ver como.
Ver o conteúdo de um Tarball
Se você deseja apenas visualizar o conteúdo de um arquivo TAR ou TAR.GZ, não é necessário extraí-lo. Em vez disso, use o seguinte comando para ver o que está dentro:
tar -tvf (archive.tar) tar -ztvf (archive.tar.gz)
Isso imprimirá a lista de todos os arquivos e diretórios dentro do arquivo.
Para extrair um único arquivo de TAR ou TAR.GZ, use o seguinte formato de comando:
tar -xvf (archive.tar) (path-to-file) tar -zxvf (archive.tar.gz) (path-to-file)
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.takes e corpo.tar.gz arquivos, os comandos seriam:
tar -xvf test.tar test1.txt tar -zxvf test.tar.gz test1.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.
Da mesma forma, você também pode extrair um único diretório de um tarball usando a seguinte sintaxe:
tar xvf (archive.tar) (path-to-directory) tar -zxvf (archive.tar.gz) (path-to-directory)
Por exemplo, para extrair um arquivo inteiro teste 1 subdiretório do test.takes arquivo, você precisaria fornecer o caminho completo do diretório, ou seja teste/teste1:
tar -xvf test.tar test/test1
Isso extrairá todo o subdiretório teste/teste1 no diretório do terminal atual.
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 (archive.tar) -C (destination_directory) (file-or-directory) tar -zxvf (archive.tar.gz) -C (destination_directory) (file-or-directory)
Digamos que queremos extrair um diretório teste2 de test.takes 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 (file-or-directory)
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 (archive.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 (file-or-directory)
Depois disso, recompacte o arquivo TAR usando gzip:
gzip -f (archive.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.