Qual é a diferença entre .tar.gz e .gz ou .tar.7z e .7z?

158

Recentemente, eu fiz backup de muitos dos meus dados e notei que posso salvar arquivos como .gzou .tar.gz, ou .7ze .tar.7zetc. Quais são as diferenças entre a normal e a .tar.*variante? Qual deles é aconselhável ao fazer backups?

Exeleração-G
fonte

Respostas:

183

Se você possui um plano de fundo do Windows, pode estar familiarizado com os formatos zip e rar. Estes são arquivos de vários arquivos compactados juntos.

Nos sistemas Unix e Unix-like (como o Ubuntu), o arquivamento e a compactação são separados.

tar coloca vários arquivos em um único arquivo (tar).

gzip comprime um arquivo (apenas).

Portanto, para obter um arquivo compactado, você combina os dois, primeiro usa tarou coloca paxtodos os arquivos em um único arquivo (archive.tar) e depois gzip(archive.tar.gz). Se você possui apenas um arquivo que precisa compactar (notes.txt), não há necessidade de tar, portanto, basta fazer o gzip notes.txtque resultará em notes.txt.gz. Existem outros tipos de compactação, como compress, bzip2e xzque funcionam da mesma maneira que o gzip (além de usar diferentes tipos de compactação, é claro)

Geirha
fonte
6
Isso faz sentido, mas então, por que eu posso criar um .7zarquivo de vários arquivos, enquanto também posso fazer um .tar.7zarquivo de vários arquivos?
precisa saber é o seguinte
3
@ Exeleration-G 7zip não segue este esquema. É mais como zip e rar. Não sei qual é o sentido de usar o tar em conjunto com o 7zip, pois eu mesmo não usei o 7zip.
geirha
42
@ Exeleration-G Depois de ler as outras respostas, vejo o SaultDon responde a isso; O 7zip não armazena a propriedade unix e a permissão dos arquivos arquivados (parece ser voltado principalmente para o Windows, como zip e rar); portanto, faz sentido combiná-lo com o tar para manter a propriedade e as permissões preservadas.
Geirha 15/04
@geirha Marque a pergunta como resolvida se encontrar a resposta apropriada.
Ravi
1
Na minha experiência, 7z é muito melhor na compressão do que o zip. Quando eu testei me salvou algo como 40% extra
Eoin
49

Depende do que você está procurando ... Compactação ou arquivamento?

Quando falo em arquivamento, quero dizer preservar permissões, estrutura de diretórios, etc.

A compactação pode ignorar a maior parte disso e apenas colocar seus arquivos em pacotes menores.

Para preservar as permissões de arquivo, use tar:

tar cpvf backup.tar folder

O sinalizador p salvará as permissões do arquivo. Use o sinalizador z para compactação gzip ou o sinalizador j para compactação bzip.

tar czpvf backup.tar.gz folder #backup.tgz is acceptable as well
tar cjpvf backup.tar.bz2 folder #backup.tbz2 works too

Se você deseja ter um arquivo tar, você pode "atualizar" empacotar o tar usando o sinalizador P:

tar cpPvf backup.tar folder

Em seguida, para atualizar, substitua 'c' por 'u' e, ao descompactar, você pode usar 'k' para preservar os arquivos que já existem.

tar upPvf backup.tar folder #updating a tar file
tar xpPkvf backup.tar #extracting a tar with permissions(p) and not extracting(k) files that exist on disk already

O sinalizador P salva arquivos com caminhos completos, então - / home / nome de usuário vs home / nome de usuário (observe a barra invertida principal).

A compactação 7z oferece maior compactação, mas não preserva a propriedade, as permissões do arquivo, etc. O Rzip é outro utilitário de compactação que oferece compactação comparável ao 7z também.

Eu acho que um arquivo backup.tar.7z é apenas um arquivo tar (com permissões) compactado por um arquivo 7z, embora eu não ficasse surpreso se ocorresse pouca compactação porque o 7z talvez não consiga despejar os metadados do arquivo. É a capacidade do 7z de excluir os metadados do arquivo que ele pode oferecer excelente compactação (entre outras coisas, é claro).

A compactação também depende inteiramente do tipo de dados. Alguns arquivos não são compactados bem porque já podem ser compactados com outros meios (por exemplo, .mp3, .jpg, .tiff / com lzma, .rpm, etc.).

SaultDon
fonte
11

O gzip ou o bzip2 não conhecem file system- nome do arquivo, diretório ou estrutura da árvore. Apenas comprime o fluxo de entrada e depois o resultado da saída. Mesmo o gzip ou o bzip2 não podem arquivar diretórios por conta própria, é por isso que geralmente é combinado com o tar.

tar (arquivador) - apenas estrutura do arquivo morto. gzip, bzip2 (compressor) - apenas comprime a entrada.

Eu acho que essa estratégia veio da filosofia Unix 'faça uma coisa bem' . Tar funciona bem? Deixe como está. Precisa de mais taxa de compactação do que gzip? Aqui está bzip2 ou 7zip.

Mait
fonte
Na verdade, 7zip pode arquivar como zip ou rar.
Mait
8

seus diferentes estilos de compactação, o tar por si só é simplesmente arquivado (pouca ou nenhuma compactação). tar.gz é um arquivo tar, mas o conteúdo é compactado pelo gzip (compactação moderada), portanto o .gz e o tar.7z são compactados usando o 7zip (geralmente compactação super alta)

ao fazer o backup, eu recomendaria o tar.7z, pois possui a maior taxa de compactação, economizando espaço, mas usa um programa extra (7zip). .tar.gz será um arquivo maior e fará o mesmo trabalho, você também pode usar o bzip (.tar.bz / bz2), embora não tenha certeza se isso serviria melhor a você, como uso o gzip ou o 7zip

MuffinStateWide
fonte
4

normalmente, arquivos * .tar são apenas arquivos tar criados pelo programa tar, * .gz são criados pelo gzip, * .tar.gz (às vezes também * .tgz) são arquivos tar com gzip e * .7z são criados pelo 7zip.

No entanto, no Linux / Unix, é possível nomear um arquivo da maneira que ele quiser, por isso é completamente a critério do criador dos arquivos.

G. Ele
fonte
3

O Tar (Tape Archiver) tem sido tradicionalmente usado como um contêiner no Unix / Linux para empacotar arquivos para movimentação. Empacota a estrutura do arquivo e mantém os atributos do arquivo, mas não compacta os arquivos.

Os programas de compactação compactam o arquivo para torná-lo menor, mas podem não manipular vários arquivos e / ou podem não manipular os atributos de arquivo necessários para o Linux. Como o tar já existe e é bem suportado, não há razão para o arquivamento de programas duplicar essa funcionalidade, que é específica da plataforma (diferente do Windows e Linux). Além disso, diferentes programas de compactação podem ter desempenho diferente em diferentes tipos de arquivos, portanto, é recomendável ter uma escolha de mais de um.

Marty Fried
fonte