Comando para 'gzip' uma pasta?


66

Eu sou novo no material de prompt de comando do Mac. Como você cria um gzip de uma pasta no Mac OS X? Algumas pessoas me disseram que, se você deseja criar um gzip de uma pasta, deve 'tar' primeiro e depois 'gzip'. Isso está correto?


11
Esta não é uma questão de programação? Sua postagem está marcada, objective-cmas você está perguntando sobre a linha de comando.
precisa saber é o seguinte

Respostas:


130

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


30
Vale mencionar para que servem as opções a -czfseguir tar: cindica que você deseja criar um arquivo tar, zaplica gzip- se ao arquivo tar intermediário e fé o nome do arquivo final subsequente folder_name.tar.gz.
Fideli

13
Aviso: gzip file.txtsubstitui o arquivo original.
Zoltán

6
@ Zoltán Use gzip -k file.txtpara "manter" (não excluir) o arquivo de entrada.
thohl

13

Se alguém ainda encontrar essa pergunta ao pesquisar "gzip no Mac", escrevi um guia que pode ser útil para outra pessoa. Aqui vai:

Compressing

O comando mais básico compactará o arquivo filename.exte o substituirá filename.ext.gzno mesmo diretório.

gzip filename.ext

Se você não quiser perder o arquivo original, precisará canalizar a saída gzip -cpara 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 compresse 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.extpor filename.ext.Zno mesmo diretório.

compress filename.ext

Descomprimir

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 -dflag. Este modo irá substituir o arquivo filename.ext.gzcom filename.extno mesmo diretório. Há também um atalho chamado gunzipque 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 é zcatque é basicamente o mesmo que chamar, gzip -cdmas você pode chamar vários arquivos e concatená-los da mesma maneira que o catcomando concata os arquivos de texto. A única desvantagem é que seus arquivos precisam ser sufixados com o .Zsufixo para que funcionem ...

zcat filename.ext.Z
zcat file_a.Z file_b.Z file_c.Z

Mas não tema! zcatainda é ú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 uncompresswrapper funciona assim, gzip -cdmas 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 :)


4

MacOS X é Unix, portanto, isso deve funcionar (este trabalho no GNU / Linux)

pasta tar czvf compressed.tar.gz

3

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

3

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: =)


11
gzip --keep file.txtmanterá o original e criará file.txt.gz. Veja gzip --help.
Blaise

1

Sim isto está correcto. gzippode compactar apenas um arquivo. tarcodifica o conteúdo do diretório em um único arquivo, que pode ser ainda mais comprimidos usando gzip, bzip2, lzmaou qualquer outra coisa.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.