Compacta arquivos do terminal OS X?

32

No Finder, há essa maravilhosa capacidade de clicar com o botão direito do mouse em um arquivo ou diretório, selecionar compactar na lista suspensa e terminar com um arquivo compactado.

É possível fazer a mesma coisa no terminal?

    
por William Jockusch 13.11.2012 / 14:43

3 respostas

43

Claro, chama-se zip(1) - quem teria pensado?

Isso adiciona o arquivo file ao arquivo file.zip :

zip file.zip file

Claro, para adicionar mais arquivos, basta adicioná-los como argumentos ao comando. Confira man zip para mais opções.

Frequentemente, você vai querer ignorar a inclusão desses arquivos .DS_Store , por exemplo, compactando a pasta inteira folder em folder.zip :

zip -vr folder.zip folder/ -x "*.DS_Store"
    
por 13.11.2012 / 15:14
7

Para compactar os arquivos exatamente como o comando do Finder os compactaria, use:

ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip

Veja man ditto para detalhes:

 The command:
       ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip
 will create a PKZip archive similarly to the Finder's Compress function-
 ality.
    
por 24.01.2017 / 14:39
3

Existe tar (1) e gzip (ou bzip2 ou lzma). Tar é usado para rolar vários arquivos em um arquivo, enquanto o outro dos três é usado para compactá-lo.

Em uma linha de comando, você chamará tar com algumas opções para criar um arquivo e gzip-lo.

Por exemplo:

tar -c -z -f myarchive.tar.gz -C /home/username Downloads

Este ficheiro -c reate ao arquivo -z denominado -f ile do diretório -C hange-folder-to e conterá todos os arquivos da pasta Downloads. A opção -C é opcional e os argumentos do arquivo fonte serão retirados da pasta atual se omitidos.

Para referência: tutorial de tar

    
por 13.11.2012 / 15:39