Respostas:
O Tar é uma ferramenta de arquivamento (Tape ARchive), ele apenas coleta arquivos e seus metadados e produz um arquivo. Se você deseja compactar esse arquivo posteriormente, poderá usar gzip / bzip2 / xz. Por conveniência, o tar fornece argumentos para compactar o arquivo automaticamente para você. Confira a página do manual tar para obter mais detalhes.
thing.tar.7z
z
e determine apenas o método de compactação com base na extensão, enquanto o tar GNU possui zZjJ
argumentos separados para os diferentes métodos de compactação.
zZjJ
para compactação, como o tar do GNU. No entanto, ele detecta automaticamente a compactação ao descompactar, enquanto o GNU tar espera zZjJ
também.
tar
descomprimem automaticamente sem exigir as -zZjJ
opções.
tar
produz arquivos; a compactação é uma funcionalidade separada. No entanto, por tar
si só, pode reduzir o uso de espaço quando usado em um grande número de arquivos pequenos menores que o tamanho do cluster do sistema de arquivos. Se um sistema de arquivos usar clusters de 1kb, mesmo um arquivo que contenha um único byte consumirá 1kb (mais um inode). Um tar
arquivo não possui essa sobrecarga.
Aliás, um arquivo ISO não é realmente "um arquivo para armazenar arquivos" - é na verdade uma imagem de um sistema de arquivos inteiro (um originalmente projetado para ser usado em CDs) e, portanto, sua estrutura é consideravelmente mais complexa.
O comando tar original do UNIX não compactou arquivos. Como foi mencionado em um comentário, o tar do Solaris não é compactado. Nem o HP-UX, nem o AIX, FWIW. Por convenção, os arquivos não compactados terminam em .tar
.
Com o GNU / Linux, você obtém o tar do GNU. (Você pode instalar o GNU tar em outros sistemas UNIX.) Por padrão, ele não é compactado; no entanto, ele faz comprimir o arquivo resultante com o gzip (também por GNU) se você fornecer -z
. O sufixo convencional para arquivos compactados com gzip é que .gz
, geralmente, você vê tarballs (gírias para um arquivo tar, geralmente sugerindo que ele foi compactado) que terminam em .tar.gz
. Esse final implica que o tar foi executado, seguido por gzip, por exemplo tar cf - .|gzip -9v > archive.tar.gz
. Você também encontrará arquivos terminados em .tgz
, por exemplo tar czf archive.tgz .
.
Edit: www.linfo.org/tar.html me lembrou que o GNU tar suporta muito mais funcionalidades do que apenas comprimir com o gzip, e me lembrou que os sufixos são mais do que convenções simples. Eles têm semântica integrada. Também suporta bzip2 ( -j
for .bz2
) e compressa antiga ( -Z
for .Z
). Então olhei para a página do manual e lembrei que -a
mapeia automaticamente o método de compactação desejado com base no sufixo.
Um outro nit. Como diz a página do manual tar do Linux, o GNU produz páginas de informações, não páginas do manual, portanto, para aprender tudo sobre o tar do GNU, execute info tar
.