Na minha empresa, baixamos um instantâneo de banco de dados de desenvolvimento local como um db.dump.tar.gz
arquivo. A compactação faz sentido, mas o tarball contém apenas um único arquivo ( db.dump
).
Existe algum motivo para arquivar um único arquivo ou é .tar.gz
apenas um idioma tão comum? Por que não apenas .gz
?
tar
compression
archive
Gardenhead
fonte
fonte
tar -zxvf
. Mas para quem olha o nome do arquivo e vê que ele não tem.tgz
extensão, é perfeitamente bom compactar com gzip o arquivo db dump. Como eu não conheço os algoritmos de compactação em detalhes, não tenho certeza se o tar faz alguma compactação em arquivos esparsos, como db dump, mas para arquivos de texto sem formatação, o gzip direto do arquivo tem uma vantagem de tamanho muito pequena sobre o taring first e o gzip ao.tar.gz
superior à maioria dos outros métodos comuns. Lembro-me que era superior ao justo,.tar
mas não consigo lembrar se era melhor do que justo.gz
. Ironicamente, o.cab
formato do Windows foi o melhor dos métodos que tentei, o que foi muito inesperado.tar
não é um algoritmo de compressão, é um formato de arquivoRespostas:
As vantagens de usar em
.tar.gz
vez de.gz
sãotar
armazena mais meta-dados (permissões UNIX etc.) quegzip
.A sobrecarga de uso
tar
também é muito pequena.Se não for realmente necessário, ainda não recomendo tar um único arquivo. Existem muitas ferramentas úteis que podem acessar arquivos únicos compactados diretamente (como
zcat
,zgrep
etc. - também existentes parabzip2
exz
).fonte
.gz
, meu primeiro instinto étar -zxf foo.gz
. Lembrar que o gzip é mesmo um comando leva mais alguns segundos.z
(ou, se-
for o caso), a maioria dostar
s modernos detectará automaticamente que o arquivo precisa ser descompactado.gzip
, armazenará o nome do arquivo original e o registro de data e hora. Você pode usar a-N
opção ao descompactar para restaurá-los.Você está realmente fazendo apenas metade da pergunta. A outra pergunta é: "Por que eu compactaria um arquivo tar com o gzip?". E a resposta não é apenas que
gzip
torna o arquivo menor (na maioria dos casos):tar
:gzip
:Com apenas
tar
você não pode ter certeza de que seus dados não foram corrompidos. Com apenasgzip
você não pode restaurar o ID do usuário / grupo, a hora da modificação e, possivelmente, o nome do arquivo original.A combinação é mais poderosa do que os comandos / formatos individuais fornecem, porque complementam os recursos um do outro .
fonte
tar
página da Wikipedia, entendi mal a descrição como significando que a soma de verificação era para o arquivo inteiro.Há um muito grande vantagem de usar arquivos de texto somente gzipped - o conteúdo pode ser acessado diretamente com as ferramentas de linha de comando, como
less
,zgrep
,zcat
.fonte
Eu diria que é provável que as pessoas simplesmente não percebam que podem usar o gzip / bzip2 / xz sem tar. Possivelmente porque eles vêm de um plano de fundo do DOS / Windows, onde é normal que a compactação e o arquivamento sejam integrados em um único formato ( ZIP , RAR , etc).
Embora possa haver pequenas vantagens em usar o tar em algumas situações devido ao armazenamento de metadados ou à capacidade de adicionar arquivos extras, também existem desvantagens. Com um arquivo gzip / bzip2 / xz simples, você pode descompactá-lo e canalizar os dados descompactados diretamente para outra ferramenta (como o banco de dados) sem precisar armazenar os dados descompactados como um arquivo em disco. Com um tarball isso é mais difícil.
fonte
tgz
extensão. No entanto, o caso do OP usatar.gz
- e se esses hipotéticos ex-usuários do Win / DOS são como eu, a primeira coisa que eles dizem ao olhar para um arquivo é: 'Por que ele tem 2 extensões?'. Eles pesquisam no Google e obtêm rapidamente a resposta, o que explica especificamente que atar
compressão é distinta. ;-)Há uma diferença importante que pode tornar o uso
tar
importante em algumas circunstâncias: além dos "metadados" mencionados pelo @jofel em sua resposta,tar
registra o nome do arquivo no arquivo morto . Ao extraí-lo, você obtém o nome do arquivo original, independentemente do nome do arquivo.No seu caso, o arquivo tar e o arquivo contém os nomes relacionados
db.dump.tar.gz
edb.tar
, mas suponha que você renomeie o arquivo tar para20-Apr-16.dump.tgz
, ou o que for. Untar isso comtar xvfz
, e você recebedb.dump
. Para comparação, descompacte20-Apr-16.dump.gz
e você tem20-Apr-16.dump
. (Edit: como apontado nos comentários, o gzip também registra o nome do arquivo; mas normalmente não é usado ao descompactar). Umtar
arquivo morto também pode conter um nome de caminho relativo que coloca o arquivo extraído em um subdiretório.Seu caso de uso determinará se esse tipo de persistência de nome de arquivo é necessário, ou mesmo desejado , ou é realmente indesejável. Mas certamente, independentemente da compactação, um
tar
arquivo viaja de maneira diferente de um arquivo comum.fonte
gzip --name
explicitamente ao descompactar), mas você não precisa usar o tar para obter a persistência do nome do arquivo.Além de todas as outras respostas, descobri recentemente uma situação de script em que apenas um arquivo era esperado, mas um funcionário anterior escreveu os scripts com a possibilidade de mais de um arquivo ser gerado. Então, os arquivos foram tarzados e compactados, depois transferidos e expandidos.
Quando o processo chegou ao ponto de criar um arquivo de 4,3 GB, ele rolou e criou um arquivo .dump.001, além de um arquivo .dump. Todos os scripts continuaram funcionando.
Essa é a preguiça do sysadmin proativa definida!
fonte
Gostaria de tar um único arquivo, para copiá-lo preservando o carimbo de data / hora (que é facilmente esquecido nos downloads). Permissões de arquivo e propriedade são menos importantes: download é um termo que se aplica a sistemas que não estão bem integrados.
Seja tar ou não, é prática comum compactar o arquivo para tornar os downloads mais rápidos - e evitar ficar sem espaço em disco.
fonte
O Tar é especialmente útil para vários arquivos não gravados em um sistema de arquivos formal, sempre foi. Se, por alguma razão, houver ocasionalmente, apenas 1 arquivo a ser gravado, não terá conseqüências reais. Eu posso dd meu .tar.gz diretamente para / dev / sdx sem considerar a partição ou o sistema de arquivos. Pode muito bem ser fita.
Geralmente, isso é feito porque o script ou processo foi copiado do código de herança. É claro que não há necessidade de tar se houver apenas um arquivo, mas deixa espaço para aprimoramento em vários arquivos ......
fonte