Respostas:
O Tar é a ferramenta de arquivamento e o gzip é a ferramenta de compactação. Para compactar um diretório completo, primeiro você precisa arquivá-lo em um único arquivo. É isso que o trabalho é alcatrão. e então você comprime o arquivo arquivado. Você pode executar as duas tarefas em um único comando tar com a opção adequada.
tar -czf nome_da_pasta.tar.gz nome_da_pasta /
Se você não deseja criar um arquivo tar (pode ser que você queira compactar apenas um único arquivo), então você pode usar o comando gzip diretamente.
gzip file.txt
Ele criará um arquivo compactado chamado file.txt.gz
-czf
seguir tar
: c
indica que você deseja criar um arquivo tar, z
aplica gzip
- se ao arquivo tar intermediário e f
é o nome do arquivo final subsequente folder_name.tar.gz
.
gzip file.txt
substitui o arquivo original.
gzip -k file.txt
para "manter" (não excluir) o arquivo de entrada.
Se alguém ainda encontrar essa pergunta ao pesquisar "gzip no Mac", escrevi um guia que pode ser útil para outra pessoa. Aqui vai:
O comando mais básico compactará o arquivo filename.ext
e o substituirá filename.ext.gz
no mesmo diretório.
gzip filename.ext
Se você não quiser perder o arquivo original, precisará canalizar a saída gzip -c
para um arquivo.
gzip -c filename.ext > anotherfile.gz
Também podemos compactar a partir da entrada padrão, para compactar a saída de outros comandos.
cat filename.ext | gzip > anotherfile.gz
O OS X também vem com os comandos compress
e uncompress
. Eles criam um gzip "mais inteligente", pois ele não comprime o arquivo se ele crescer após o processo de compactação. O comando a seguir substitui filename.ext
por filename.ext.Z
no mesmo diretório.
compress filename.ext
Para restaurar um arquivo para seu estado natural descompactado, você pode usar o gzip ou outro dos wrappers. O modo de descompressão do gzip é chamado com a -d
flag. Este modo irá substituir o arquivo filename.ext.gz
com filename.ext
no mesmo diretório. Há também um atalho chamado gunzip
que fará o mesmo.
gzip -d filename.ext.gz
gunzip filename.ext.gz
Também podemos canalizar o arquivo descompactado para a saída padrão para salvá-lo em outro arquivo.
gzip -cd filename.ext.gz > anotherfile
gunzip -c filename.ext.gz > anotherfile
Outra maneira rápida de ler o conteúdo de um gzip na saída padrão é zcat
que é basicamente o mesmo que chamar, gzip -cd
mas você pode chamar vários arquivos e concatená-los da mesma maneira que o cat
comando concata os arquivos de texto. A única desvantagem é que seus arquivos precisam ser sufixados com o .Z
sufixo para que funcionem ...
zcat filename.ext.Z
zcat file_a.Z file_b.Z file_c.Z
Mas não tema! zcat
ainda é útil, porque pode descomprimir da saída padrão. Então você pode basicamente canalizar seus arquivos para o zcat para descomprimir na janela do terminal.
cat filename.ext.gz | zcat
Isso é muito útil se você precisar verificar o conteúdo de um arquivo muito rapidamente, e você pode até salvar a saída do zcat em um arquivo, com a mesma facilidade.
cat filename.ext.gz | zcat > anotherfile
O uncompress
wrapper funciona assim, gzip -cd
mas procura arquivos com a extensão .Z para substituí-los no diretório atual; portanto, você só precisa especificar o nome do arquivo que deseja restaurar, mas tudo bem se você chamá-lo com a extensão .Z, como o programa irá ignorá-lo.
compress filename.ext
uncompress filename.ext
Espero que você ache meu guia útil :)
Sim, você deve tar o diretório primeiro. O comando tar pode fazer as duas coisas:
tar -czf archiv.tar.gz mydir/
extraia seu arquivo:
tar -xzf archiv.tar.gz
Para adicionar à resposta por @taskinoor: se você usar a versão de arquivo único, também conhecida como
gzip file.txt
esteja ciente de que o arquivo original (file.txt) será removido e você terá apenas file.txt.gz
Eu colocaria isso como comentário, mas não tenho karma suficiente para fazer isso: =)
gzip --keep file.txt
manterá o original e criará file.txt.gz
. Veja gzip --help
.
Sim isto está correcto. gzip
pode compactar apenas um arquivo. tar
codifica o conteúdo do diretório em um único arquivo, que pode ser ainda mais comprimidos usando gzip
, bzip2
, lzma
ou qualquer outra coisa.
objective-c
mas você está perguntando sobre a linha de comando.