Articles

Como Zip ou Descompactar Arquivos a Partir do Terminal Linux

  • Dave McKay

    @TheGurkha

  • Atualizado em 28 de Maio de 2019, 5:15 EDT
Linux shell de linha de comandos
Fatmawati Ela Zaenuri/.com

de arquivos ZIP são um universal de arquivo comumente usados no Windows, macOS, e até mesmo sistemas Linux. Você pode criar um arquivo zip ou unzip de arquivos de um com alguns comandos de terminal Linux comuns.

o formato de arquivo comprimido ZIP

graças à dominância do formato ZIP no reino do Windows, arquivos ZIP são provavelmente a forma mais comum de arquivo comprimido no mundo.enquanto .alcatrao.os arquivos GZ e tar.BZ2 são comuns no Linux, os usuários do Windows provavelmente lhe enviarão um arquivo em formato ZIP. E, se você quiser arquivar alguns arquivos e enviá-los para um usuário do Windows, o formato ZIP será a solução mais fácil, mais compatível para todos.

relacionado: como extrair arquivos de A.alcatrao.GZ or .alcatrao.Arquivo bz2 no Linux

zip, descompacte, e Outros Utilitários

Você já deve saber que o Linux e sistemas operativos do tipo Unix tais como o macOS tem ferramentas para permitir que você crie arquivos ZIP e extrair arquivos a partir deles, chamado de zip e unzip. Mas há toda uma família de utilitários relacionados, tais como zipcloakzipdetailszipsplit e zipinfo.

publicidade

verificámos algumas distribuições Linux para ver se elas incluíam estes utilitários na instalação padrão. Todas as utilidades estavam presentes no Ubuntu 19.04, 18.10 e 18.04. Eles também estavam presentes em Manjaro 18.04. Fedora 29 included zipandunzip, but none of the other utilities and that was also the case for CentOS.

para instalar os elementos em falta no Fedora 29, use o seguinte comando:

sudo dnf install perl-IO-Compress

zip de comando de instalação para o Fedora

Para instalar os elementos em falta no CentOS 7, use o seguinte comando:

sudo yum install perl-IO-Compress

Zip de comando de instalação do Centos

Propaganda

Se qualquer um dos utilitários zip estão em falta a partir de uma distribuição de Linux que não foi mencionado acima, o uso que distribuição Linux da ferramenta de gestão de pacotes para instalar o pacote necessário.

como criar um ficheiro ZIP com o comando zip

para criar um ficheiro ZIP, você precisa de dizer a zip o nome do ficheiro de arquivo e quais os ficheiros a incluir nele. Não precisas de acrescentar o”.ZIP ” extensão para o nome do arquivo, mas não faz mal se você fizer.

Para criar um arquivo chamado source_code.zip que contém todo o código fonte em C e ficheiros de cabeçalho de arquivos no diretório atual, você pode utilizar este comando:

zip source_code *.c *.h

zip de comando em uma janela de terminal

Cada arquivo é listado como é adicionado. O nome do arquivo e a quantidade de compressão que foi alcançada nesse arquivo é mostrado.

saída do comando zip numa janela terminal

anúncio

Se olhar para o novo arquivo ZIP, poderá ver que o “.a extensão de arquivo zip foi adicionada automaticamente por zip.

ls -l source_code.zip

ls no arquivo zip em uma janela de terminal

Se você não quiser ver o resultado de zip como o ZIP arquivo é criado, use o -q (silencioso) opção.

zip -q source_code *.c *.h

-q quiet opção em uma janela de terminal

, Incluindo Diretórios, Arquivos ZIP

Para inclui sub-diretórios no arquivo ZIP, use o -r (recursiva) e opção de incluir o nome do sub-diretório na linha de comando. Para criar um arquivo ZIP como antes e também incluir o sub-diretório de arquivo, use este comando.

zip -r -q source_code archive/ *.c *.h

-R opção recursiva numa janela terminal

para ser atencioso com a pessoa que irá extrair os ficheiros do ficheiro ZIP que está a criar, é muitas vezes educado criar ficheiros ZIP com os ficheiros dentro dele contidos num directório. Quando a pessoa que recebe o arquivo ZIP extrai-lo, todos os arquivos são colocados cuidadosamente dentro de um diretório em seu computador.

anúncio

no seguinte comando, vamos arquivar owork directório e todas as sub-pastas. Note que este comando está sendo emitido a partir da Diretoria-mãe da pasta work.

zip -r -q source_code work/

zipar a pasta de trabalho numa janela terminal

definir o nível de compressão

pode definir a quantidade de compressão aplicada aos ficheiros à medida que estes são adicionados ao arquivo ZIP. O alcance é de 0 a 9, com 0 não sendo nenhuma compressão. Quanto maior a compressão, mais tempo leva para criar o arquivo ZIP. Para arquivos ZIP modestamente dimensionados, a diferença de tempo não é uma penalidade significativa. Mas então, para arquivos ZIP modestamente dimensionados, a compressão padrão (Nível 6) é provavelmente bom o suficiente de qualquer maneira.

Para obter zip utilizar um determinado nível de compressão, de passar o número como uma opção na linha de comando, com um “-“, como este:

zip -0 -r -q source_code work/

-0 opção de compressão em uma janela de terminal

O padrão de compressão de nível 6. Não há necessidade de fornecer a opção -6, mas não fará mal se o fizer.

zip -r -q source_code work/

Nível 6 compressão numa janela terminal

o nível máximo de compressão é o Nível 9.

zip -9 -r -q source_code work/

-9 compressão em uma janela de terminal

Propaganda

Com a selecção de ficheiros e directórios sejam arquivados aqui, a diferença entre a não compactação (nível 0) e o padrão de compressão (nível 6) é de 400K. A diferença entre a compressão padrão e o nível mais alto de compressão (Nível 9) é apenas 4K.

que pode não parecer muito, mas para os arquivos que contêm centenas ou mesmo milhares de arquivos, a pequena quantidade de compressão extra por arquivo iria adicionar-se a uma economia de espaço de valor.

adicionar senhas a ficheiros ZIP

adicionar senhas a ficheiros ZIP é fácil. Use a opção -e (encrypt) e ser-lhe-á pedido para introduzir a sua senha e introduzi-la de novo para verificação.

zip -e -r -q source_code work/

Adicionar senhas de arquivos zip em uma janela de terminal

Como Descompactar um Arquivo ZIP Com o Comando unzip

Para extrair os arquivos de um arquivo ZIP, use o comando unzip, e fornecer o nome do arquivo ZIP. Note que você precisa fornecer o”.extensão zip”.

unzip source_code.zip

o comando unzip numa janela de terminal

publicidade

À medida que os ficheiros são extraídos, estão listados na janela de terminal.

saída do unzip numa janela de terminal

ZIP files don’t carry details of file ownership. Todos os arquivos que são extraídos têm o proprietário definido para o usuário que está extraindo-os.

assim como zipunzip tem -q (silencioso) opção, de modo que você não precisa ver a lista de arquivos como os arquivos são extraídos.

unzip -q source_code.zip

descompacte -q opção em uma janela de terminal

Extrair os Arquivos para um Diretório de Destino

Para ter os arquivos extraídos em uma pasta específica, use o -d (diretório) opção, e fornecer o caminho para o diretório que você deseja que o arquivo a ser extraído em.

unzip -q source_code.zip -d ./development

descompacte em um diretório de destino em uma janela de terminal

Extrair Arquivos ZIP Protegidos por Senha

Se um arquivo ZIP que foi criado com uma senha, unzip vai pedir a senha. Se você não fornecer a senha correta, unzip não irá extrair os arquivos.

unzip -q source_code.zip

a descompactar com a senha de comando em uma janela de terminal

Propaganda

Se você não cuidar da sua palavra-passe a ser visto por outras pessoas—nem que seja armazenado em seu histórico de comandos—você pode fornecer a senha na linha de comando com -P (palavra-passe) opção. (You must use a capital ” P.”)

unzip -P fifty.treacle.cutlass -q source_code.zip

descompactar com a senha de opção em uma janela de terminal

Exclusão de Arquivos

Se você não deseja extrair um arquivo ou grupo de arquivos, use o -x (excluir) opção. Neste exemplo, queremos extrair todos os arquivos além daqueles que terminam em a “.extensão h.

unzip -q source_code.zip -x *.h

unzip exclude option in a terminal window

Overwriting Files

suponha que tenha extraído um arquivo mas tenha apagado alguns dos ficheiros extraídos por engano.

anúncio

uma correção rápida para isso seria extrair os arquivos mais uma vez. Mas se você tentar extrair o arquivo ZIP no mesmo diretório como antes, unzip irá pedir uma decisão sobre a substituição dos arquivos. Esperará uma das seguintes respostas.

para além da respostar (renomear), estas respostas são sensíveis à capitalização.

  • y: Sim, substituir este ficheiro
  • n: Não, não substituir este ficheiro
  • A: Todos, substituir todos os ficheiros
  • N: Nenhum, substituir nenhum dos arquivos
  • r: Mudar o nome, extraia este arquivo, mas dar-lhe um novo nome. Ser-lhe-á solicitado um novo nome.

substituir solicita em uma janela de terminal

Para forçar unzip para substituir os arquivos existentes usar o -o (substituir) opção.

unzip -o -q source_code.zip

substituir opção em uma janela de terminal

A maneira mais eficiente para substituir os ficheiros em falta seria ter unzip só extrair os arquivos no arquivo que não estão no diretório de destino. Para fazer isso, use a opção -n (never overwrite).

unzip -n source_code.zip

descompacte com n-nunca substituir opção em uma janela de terminal

a Olhar para Dentro de um Arquivo ZIP

é muitas vezes útil e instrutivo para ver uma lista dos arquivos dentro de um arquivo ZIP antes de extraí-lo. Você pode fazer isso com a opção -l (list archive). It is piped through less to make the output manageable.

unzip -l source_code.zip | less

unzip listing option in a terminal window

anúncio

a saída mostra as pastas e ficheiros dentro do ficheiro ZIP, o seu comprimento e a data em que foram adicionados ao arquivo. Pressione “q”para sair de less.

listar a saída de arquivo numa janela de terminal

Existem outras formas de espreitar dentro de um ficheiro ZIP que dão diferentes tipos de informação, como veremos.

adicione uma senha com o comando zipcloak

se criou um ficheiro ZIP mas se esqueceu de adicionar uma senha, o que pode fazer? Pode adicionar rapidamente uma senha ao ficheiro ZIP usando o comando . Passe o nome do arquivo ZIP na linha de comando. Ser-lhe-á pedida uma senha. Você precisa verificar a senha, inserindo – a uma segunda vez.

zipcloak source_code.zip

zipcloak em uma janela de terminal

Ver Detalhes do Ficheiro Com o zipdetails Comando

zipdetails comando irá mostrar-lhe um monte de informações sobre o arquivo ZIP. A única maneira sensata de lidar com a quantidade de saída que este comando pode dar é canalizá-la através de less .

zipdetails source_code.zip | less

o comando zipdetails numa janela terminal

publicidade

Note que a informação incluirá nomes de Ficheiros, mesmo que o ficheiro ZIP esteja protegido por senha. Este tipo de informação é armazenado dentro do arquivo ZIP como meta-dados e não faz parte dos dados criptografados.

saída de zipdetails em uma janela de terminal

Pesquisa Dentro do Arquivo Com o zipgrep Comando

zipgrep comando permite pesquisar dentro de arquivos em um arquivo ZIP. No exemplo a seguir, queremos saber quais arquivos dentro do arquivo ZIP têm o texto “keyval.h ” neles.

zipgrep keyval.h source_code.zip

o zipgrep comando em uma janela de terminal

podemos ver que os arquivos slang.c e getval.c contêm a seqüência de caracteres “keyval.h”.Também podemos ver que existem duas cópias de cada um destes arquivos em diretórios diferentes no arquivo ZIP.

ver a informação com o comando zipinfo

o zipinfo dá-lhe ainda outra forma de ver dentro de um ficheiro ZIP. Como antes, nós canalizamos a saída através de less.

zipinfo source_code.zip | less

zipinfo comando em uma janela de terminal

Da esquerda para a direita a saída mostra:

  • As permissões de arquivo
  • A versão da ferramenta usada para criar o arquivo ZIP
  • O tamanho do arquivo original
  • Um descritor de arquivo (descrito abaixo)
  • O método de compressão (deflação, neste caso)
  • data e hora
  • O nome do arquivo e qualquer diretório
Propaganda

O descritor de arquivo é composto de dois caracteres. O primeiro caractere será um “t” ou um ” b ” para indicar um texto ou arquivo binário. Se for uma letra maiúscula, o ficheiro está encriptado. O segundo personagem pode ser um dos quatro personagens. Este caractere representa que tipo de meta-dados está incluído para este arquivo: Nenhum, um cabeçalho local estendido, um “campo extra”, ou ambos.

  • -: Se não existir, o personagem será um hífen
  • l: se há um local estendida cabeçalho, mas não há campo extra
  • x: se não houver nenhum local estendida cabeçalho, mas existe um campo extra
  • X: se há um local estendida cabeçalho e há um campo extra

zipinfo de saída em uma janela de terminal

Dividir o Arquivo Com o zipsplit Comando

Se você precisa enviar o arquivo ZIP para alguém, mas não há restrições de tamanho ou problemas com a transmissão do arquivo, você pode usar o zipsplit comando para dividir o original do arquivo ZIP em um conjunto de pequenos arquivos ZIP.

a opção -n (tamanho) permite-lhe definir um tamanho máximo para cada um dos novos ficheiros ZIP. Neste exemplo, estamos dividindo o arquivo source_code.zip. Não queremos que nenhum dos novos arquivos ZIP seja maior que 100 KB (102400 bytes).

zipsplit -n 102400 source_code.zip

o zipsplit comando em uma janela de terminal

Propaganda

O tamanho que você escolher não pode ser menor do que o tamanho de qualquer um dos arquivos no arquivo ZIP.

usando estes comandos, pode criar os seus próprios ficheiros ZIP, abrir os ficheiros ZIP que recebe e efectuar várias outras operações sobre eles sem nunca sair do terminal Linux.Dave McKay usou pela primeira vez computadores quando a fita de papel perfurado estava em voga, e ele tem estado programando desde então. Depois de mais de 30 anos na indústria de TI, ele é agora um jornalista de tecnologia em tempo integral. Durante sua carreira, ele trabalhou como programador freelance, gerente de uma equipe internacional de desenvolvimento de software, um gerente de projeto de serviços de TI, e, mais recentemente, como um oficial de proteção de dados. Dave é um evangelista Linux e defensor de código aberto.Read Full Bio ”