Recentemente, eu fiz backup de muitos dos meus dados e notei que posso salvar arquivos como .gz
ou .tar.gz
, ou .7z
e .tar.7z
etc. Quais são as diferenças entre a normal e a .tar.*
variante? Qual deles é aconselhável ao fazer backups?
Recentemente, eu fiz backup de muitos dos meus dados e notei que posso salvar arquivos como .gz
ou .tar.gz
, ou .7z
e .tar.7z
etc. Quais são as diferenças entre a normal e a .tar.*
variante? Qual deles é aconselhável ao fazer backups?
Respostas:
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 tar
ou coloca pax
todos 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.txt
que resultará em notes.txt.gz
. Existem outros tipos de compactação, como compress
, bzip2
e xz
que funcionam da mesma maneira que o gzip (além de usar diferentes tipos de compactação, é claro)
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.).
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.
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
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.
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.
.7z
arquivo de vários arquivos, enquanto também posso fazer um.tar.7z
arquivo de vários arquivos?