Como Zip ou Descompactar Arquivos a Partir do Terminal Linux
- Dave McKay
@TheGurkha
- Atualizado em 28 de Maio de 2019, 5:15 EDT
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 zipcloak
zipdetails
zipsplit
e zipinfo
.
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 zip
andunzip
, 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
Para instalar os elementos em falta no CentOS 7, use o seguinte comando:
sudo yum install perl-IO-Compress
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
Cada arquivo é listado como é adicionado. O nome do arquivo e a quantidade de compressão que foi alcançada nesse arquivo é mostrado.
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
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
, 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
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.
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/
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/
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/
o nível máximo de compressão é o Nível 9.
zip -9 -r -q source_code work/
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/
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
À medida que os ficheiros são extraídos, estão listados na 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 zip
unzip
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
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
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
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
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
Overwriting Files
suponha que tenha extraído um arquivo mas tenha apagado alguns dos ficheiros extraídos por engano.
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.
Para forçar unzip
para substituir os arquivos existentes usar o -o
(substituir) opção.
unzip -o -q source_code.zip
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
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
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
.
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
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
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.
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
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
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
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
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 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 ”
Leave a Reply