Header Ads

Como compactar ou descompactar arquivos do terminal Linux

Os arquivos ZIP são um arquivo universal normalmente usado no Windows, macOS e até mesmo em sistemas Linux. Você pode criar um arquivo zip ou descompactar arquivos de um com alguns comandos comuns do terminal Linux.

O formato do arquivo compactado ZIP

Graças à predominância do formato ZIP na região do Windows, os arquivos ZIP são provavelmente a forma mais comum de archive compactado no mundo.

Embora os arquivos .tar.gz e tar.bz2 sejam comuns em Linux, os usuários do Windows provavelmente 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 e mais compatível para todos.

RELACIONADO: Como extrair arquivos de um .tar.gz ou .tar.bz2 Arquivo no Linux

zip, descompactar e outros utilitários

Você já deve saber que sistemas operacionais Linux e Unix, como macOS, possuem ferramentas que permitem a você crie arquivos ZIP e extraia arquivos deles, chamados zip e unzip. Mas há toda uma família de utilitários relacionados, como zipcloak, zipdetails, zipsplit e zipinfo.

Verificamos algumas distribuições do Linux para ver se elas incluíam esses utilitários na instalação padrão. Todos os utilitários estavam presentes no Ubuntu 19.04, 18.10 e 18.04. Eles também estavam presentes em Manjaro 18.04. O Fedora 29 incluiu o zip e o unzip, mas nenhum dos outros utilitários e esse também foi o caso do CentOS.

Para instalar os elementos que faltam no Fedora 29, use o seguinte comando:

 sudo dnf instalar perl-IO-Compress 

Para instalar os elementos que faltam no CentOS 7, use o seguinte comando:

 sudo yum instale perl-IO-Compress 

IMAGEM_2

Se algum dos utilitários zip estiver faltando em uma distribuição Linux que não foi mencionada acima, use a ferramenta de gerenciamento de pacotes dessa distribuição Linux para instale o pacote necessário.

Como criar um arquivo ZIP com o comando zip

Para criar um arquivo ZIP, você precisa dizer ao CEP o nome do arquivo e quais arquivos inclua nele. Você não precisa adicionar a extensão ".zip" ao nome do arquivo, mas não fará mal nenhum.

Para criar um arquivo chamado source_code.zip contendo todos os arquivos de código-fonte C e arquivos de cabeçalho no diretório atual, você usaria este comando:

[PRÉ] zip source_code * .c * .h

Cada arquivo é listado como foi adicionado. O nome do arquivo e a quantidade de compressão que foi obtida nesse arquivo são mostrados.

Se você olhar para o novo arquivo ZIP, você pode ver que o “. zip ”extensão de arquivo foi adicionada automaticamente por zip.

 ls -l source_code.zip 

IMAGEM_5

Se você não quiser ver o saída do zip à medida que o arquivo zip é criado, use a opção -q (silenciosa).

 zip -q código_de_origem * .c * .h 

IMAGEM_6

Incluindo diretórios em arquivos ZIP

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

 zip -r -q arquivo_de_origem_code / * .c * .h 

Para ser atencioso com a pessoa que irá extrair os arquivos do arquivo ZIP que você está criando, é sempre educado criar arquivos ZIP com os arquivos contidos em um diretório. Quando a pessoa que recebe o arquivo ZIP extrai, todos os arquivos são colocados dentro de um diretório em seu computador.

No comando a seguir, vamos arquivar o diretório de trabalho e todos os sub-arquivos. diretórios. Observe que este comando está sendo emitido a partir do diretório pai da pasta de trabalho.

 zip -r -q trabalho do código de origem / 

o Nível de Compressão

Você pode definir quanta compactação é aplicada aos arquivos à medida que são adicionados ao arquivo ZIP. O intervalo é de 0 a 9, com 0 sendo sem compactação. Quanto maior a compactação, mais tempo levará para criar o arquivo ZIP. Para arquivos ZIP de tamanho modesto, a diferença de fuso horário não é uma penalidade significativa. Mas, para arquivos ZIP de tamanho modesto, a compactação padrão (nível 6) provavelmente é boa o suficiente de qualquer maneira.

Para obter o zip para usar um nível específico de compactação, passe o número como uma opção na linha de comando , com um “-“, como este:

 zip -0 -r -q trabalho do código-fonte / 

O nível de compactação padrão é 6. Não é necessário fornecer a opção -6, mas não haverá nenhum dano se você fizer isso.

 zip -r -q trabalho do código de origem / 

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

 zip -9 -r -q trabalho do código-fonte / 

Com a seleção de arquivos e diretórios sendo arquivados aqui, a diferença entre nenhuma compactação (nível 0) e a compactação padrão (nível 6) é de 400K. A diferença entre a compactação padrão e o nível mais alto de compactação (nível 9) é de apenas 4K.

Isso pode não parecer muito, mas para arquivos contendo centenas ou até milhares de arquivos, a pequena quantidade de compactação extra por arquivo adicionaria uma economia de espaço útil.

Adicionando senhas para arquivos ZIP

A adição de senhas a arquivos ZIP é fácil. Use a opção -e (encrypt) e você será solicitado a digitar sua senha e inseri-la novamente para verificação.

 zip -e -r -q trabalho do código-fonte / [/ PRE ] 

Como descompactar um arquivo ZIP com o comando unzip

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

 descompacte source_code.zip 

Conforme os arquivos são extraídos, eles são listados na janela do terminal.

Os arquivos ZIP não contêm detalhes de propriedade de arquivos. Todos os arquivos que são extraídos têm o proprietário configurado para o usuário que está extraindo-os.

Assim como o zip, o unzip tem uma opção -q (silenciosa), para que você não precise ver o arquivo listagem como os arquivos são extraídos.

 descompactar -q source_code.zip 

Extraindo arquivos para um diretório de destino

Para que os arquivos sejam extraídos em um diretório específico, use a opção -d (directory) e forneça o caminho para o diretório no qual você deseja que o arquivo seja extraído.

 unzip -q source_code .zip -d ./development

Extrair arquivos ZIP protegidos por senha

Se um arquivo ZIP tiver sido criado com uma senha, o unzip solicitará a você a senha. Se você não fornecer a senha correta, o unzip não extrairá os arquivos.

 descompacte -q código_de_origem.zip 

IMAGEM_17

Se você não Não se preocupe com a sua senha ser vista pelos outros - nem sobre ela ser armazenada no seu histórico de comandos - você pode fornecer a senha na linha de comando com a opção -P (senha). (Você deve usar um maiúscula "P".)

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

IMAGEM_18

Excluindo Arquivos

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

 unzip -q source_code.zip -x * .h 

Sobrescrevendo arquivos

Suponha que você extraiu um arquivo, mas apagou alguns dos arquivos extraídos por engano.

Uma solução rápida para isso seria extrair os arquivos novamente. Mas, se você tentar extrair o arquivo ZIP no mesmo diretório de antes, o unzip solicitará uma decisão sobre a sobrescrita dos arquivos. Esperará uma das seguintes respostas.

Além da resposta r (rename), essas respostas diferenciam maiúsculas de minúsculas.

  • y: Sim, sobrescreva esse arquivo
  • n: Não, não sobrescreva este arquivo
  • A: Tudo, sobrescreva todos os arquivos
  • N: Nenhum, sobrescreva nenhum dos arquivos
  • r: Renomeie, extraia esse arquivo, mas dê um novo nome. Você será solicitado a fornecer um novo nome.

Para forçar a descompactação a sobrescrever qualquer arquivo existente, use a opção -o (substituir).

 unzip -o -q código_de_origem.zip 

IMAGEM_21

A maneira mais eficiente de substituir os arquivos que faltam seria descompactar somente os arquivos que estão no arquivo. não estão no diretório de destino. Para fazer isso, use a opção -n (nunca substituir).

 descompacte -n source_code.zip 

Examinando um arquivo ZIP

Muitas vezes é útil e instrutivo ver uma lista dos arquivos dentro de um arquivo ZIP antes de extraí-lo. Você pode fazer isso com a opção -l (arquivar lista). É canalizado através de menos para tornar a saída gerenciável.

 unzip -l source_code.zip | less 

A saída mostra os diretórios e arquivos dentro do arquivo ZIP, sua extensão, a hora e a data em que foram adicionados ao arquivo. Pressione "q" para sair de menos.

Existem outras maneiras de espiar dentro de um arquivo ZIP que fornece diferentes tipos de informação, como veremos.

Adicione uma senha com o comando zipcloak

]

Se você criou um arquivo ZIP, mas esqueceu de adicionar uma senha, o que você pode fazer? Você pode adicionar rapidamente uma senha ao arquivo ZIP usando o comando zipcloak. Passe o nome do arquivo ZIP na linha de comando. Você será solicitado por uma senha. Você precisa verificar a senha digitando-a uma segunda vez.

[PRÉ] zipcloak source_code.zip

Exibir detalhes do arquivo com o comando zipdetails

O comando zipdetails mostrará muitas informações sobre o arquivo ZIP. A única maneira sensata de lidar com a quantidade de saída que esse comando pode fornecer é canalizá-lo por menos.

 zipdetails source_code.zip | less 

Observe que as informações incluirão nomes de arquivos, mesmo que o arquivo ZIP esteja protegido por senha. Esse tipo de informação é armazenada no arquivo ZIP como metadados e não faz parte dos dados criptografados.

Pesquisar dentro do arquivo com o comando zipgrep

O comando zipgrep permite pesquisar nos 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 string “keyval.h”. Também podemos ver que existem duas cópias de cada um desses arquivos em diretórios diferentes no ZIP. arquivo.

Exibir informações com o comando zipinfo

O comando zipinfo oferece outra maneira de examinar um arquivo ZIP. Como antes, canalizamos a saída por menos.

 zipinfo source_code.zip | less 

Da esquerda para a direita, a saída mostra:

  • As permissões do 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 compactação (deflação, neste caso)
  • O registro de 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 arquivo de texto ou binário. Se for uma letra maiúscula, o arquivo é criptografado. O segundo caractere pode ser um dos quatro caracteres. Este caractere representa que tipo de meta-dados é incluído para este arquivo: nenhum, um cabeçalho local estendido, um “campo extra” ou ambos.

  • -: Se nenhum deles existir, o caractere seja um hífen
  • l: se houver um cabeçalho local estendido, mas nenhum campo extra
  • x: se não houver cabeçalho local estendido, mas houver um campo extra < li> X: se houver um cabeçalho local estendido e houver um campo extra

Divida o arquivo com o comando zipsplit

Se você precisar enviar o arquivo ZIP para outra pessoa, mas houver restrições de tamanho ou problemas com a transmissão do arquivo, você poderá usar o comando zipsplit para dividir o arquivo ZIP original em um conjunto de arquivos ZIP menores.

A opção -n (size) permite que você defina um tamanho máximo para cada um dos novos arquivos 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 

IMAGEM_31

O tamanho escolhido não pode ser menor que o tamanho de qualquer um dos arquivos no arquivo ZIP.

Usando esses comandos, você pode criar seus próprios arquivos ZIP, descompactar arquivos ZIP recebidos, e executar várias outras operações sem sair do terminal Linux.

Via: How to Geek

Nenhum comentário