Como posso criar e extrair arquivos zip da linha de comando?
command-line
zip
joachim
fonte
fonte
Respostas:
Tipicamente utiliza um
tar
para criar um arquivo não comprimido e quergzip
oubzip2
para comprimir que arquivo. Os comandosgunzip
e correspondentesbunzip2
podem ser usados para descompactar o arquivo morto, ou você pode simplesmente usar sinalizadores notar
comando para executar a descompactação.Se você está se referindo especificamente ao formato de arquivo Zip , pode simplesmente usar os comandos
zip
eunzip
.Para comprimir:
ou para compactar um diretório
Para descompactar:
isso descompacta no diretório de trabalho atual.
fonte
zip -r9 archive.zip files...
sintaxe (-r = recursiva -9 = compressão máxima).zip
pode criar muitos tipos diferentes de arquivos .ZIP, bem como usar muitos compressores diferentes. Por outro lado, existem várias outras ferramentas de compactação nomeadas de maneira semelhante: 7-Zip, gzip, bzip2, rzip etc. etc. que não são intercambiáveis.cd dir1; zip -r ../squash.zip *
unzip -d myfolder squash.zip
para extrair em um novo diretório separado (myfolder
) em vez de colocar todos os arquivos diretamente no diretório atual, o que pode ser irritante se o arquivo zip contiver muitos arquivos e diretórios em seu nível superior. Isso imita o funcionamento da maioria das ferramentas de descompactação da interface do usuário.Há um número verdadeiramente vasto de maneiras diferentes de compactar e descompactar sob derivativos UNIX, então eu vou assumir que você quis dizer "zip" no sentido genérico, em vez de um formato de arquivo específico .
Você pode compactar arquivos (em formato compactado) com o
tar
programa GNU :que fará o diretório atual. Substitua
.
por outros nomes de arquivo, se desejar outra coisa.Para descompactar esse arquivo, use:
Isso pressupõe, é claro, que você é
tar
capaz de fazer a compactação e a combinação de arquivos em um.Caso contrário, você pode simplesmente usar
tar cvf
seguido porgzip
(novamente, se disponível) para compactação egunzip
seguido portar xvf
.Para manipulação específica de arquivos no formato ZIP, eu recomendaria fazer o download
7zip
e usá-lo - ele reconhece uma enorme variedade de formatos de arquivo, incluindo o ZIP.fonte
tar jcvf file.tar.bz2...
para compactar no formato bzip2 outar Jcvf file.tar.xz ...
para a compactação xz.Se você não possui os pacotes zip e descompactar instalados e possui o java, pode
jar
descompactar:fonte
Bem, quando se trata de distribuir arquivos para uma variedade de sistemas operacionais, eu recomendo o 7-zip .
Normalmente, no pacote
p7zip
, você obtém o comando7z
e7za
, com o qual pode criar seus próprios arquivos 7z.7za
também pode descompactar arquivos zip padrão ( pkzip ) (e criá-los também com o-tzip
switch).Compressing:
Descomprimir:
Também pode criar arquivos de extração automática com o
-sfx
switch:Eu recomendo esse método caso os usuários do Windows não consigam abrir arquivos 7z (caso queira aconselhar uma ferramenta para isso: PeaZip ).
Se você deseja usar o mesmo algoritmo de compactação com seus tarballs, use o
-J
switch comtar
:xz
é uma ferramenta UNIX, que utiliza LZMA2 para a compressão, mas funciona da maneiragz
,bz2
, etc funciona. Até funciona como um filtro.O 7z não cria arquivos com informações completas do sistema de arquivos no UNIX, portanto, você precisará usá-lo
tar
antes de usar o 7z (mas como o 7z armazena outras informações sobre otar
arquivo, eu recomendaria o usoxz
, conforme projetado para ele):fonte
atool
, é uma pequena ferramenta que torna o uso de muitos compressores diferentes mais confortável. Vincule quea
e criar um arquivo se tornea arc.7z folder/
ou extraia um simplesa arc.7z
e
Você precisará garantir que esses comandos sejam instalados através do seu gerenciador de pacotes. Não é mais difícil do que usar qualquer outra coisa na linha de comando. É certamente mais simples do que criar arquivos com tar.
fonte
O BSD Tar também pode fazer isso
Ou:
fonte
tar
tem o benefício de suportar alguns formatos de compactação adicionais em comparação com o GNUtar
e outrostar
s. O maior benefício é, talvez, que ele o faça enquanto usa umatar
sintaxe semelhante . Você certamente pode usar7z
,unrar
,unzip
, etc a partir da linha de comando, mas eles usam uma diferente sintaxe.A resposta mais padrão
pax
é a recomendadacpio
e repetidatar
.Ao contrário do
cpio
POSIXtar
, mas como o GNUtar
,pax
é possível arquivar e compactar o arquivo. Esse comportamento é diferente dezip
, que compacta cada arquivo antes de colocá-lo no arquivo morto.fonte
pax
arquivos suporte zip?pax
arquivos!Isso cobre apenas extração.
Para isso, eu comecei a usar
dtrx
.O objetivo é remover a complexidade. Então você apenas passa qualquer arquivo para ele e ele descobre o que precisa ser feito com ele. Zip, alcatrão, gz ... O uso é sempre o mesmo -
dtrx archive.zip
. Ele faz algumas perguntas e pronto.dtrx
está disponível na maioria dos repositórios, para que você possaapt
|yum
instale-o.fonte
Muitas vezes me pego tentando compactar os arquivos modificados no meu diretório de trabalho - para copiar todos os arquivos modificados para outro diretório de trabalho da sandbox ou para preservá-los por um tempo porque quero desfazer algumas das alterações.
Nesse caso, eu copiar a lista de arquivos modificados para um arquivo temporário e usar
zip
com a opção-@
.Digamos que eu modifiquei os arquivos Foo.h, Bar.cc e TestBar.cc.
Digamos que eu crie um arquivo chamado modified-files.txt cujo conteúdo seja:
Eu executo o seguinte comando para compactar esses arquivos:
fonte