Comando de descompactação no Linux: 8 exemplos práticos
Tem um arquivo zip no terminal? Aprenda como usar o comando unzip no Linux com estes exemplos práticos.
Se você tiver um arquivo compactado zip, poderá descompactá-lo na linha de comando do Linux. O comando unzip no Linux é bastante versátil e você pode usá-lo para fazer muito mais do que apenas extrair um arquivo zip.
Já discuti como compactar uma pasta no Linux no passado. É hora de ver vários usos do comando unzip. Antes de fazer isso, certifique-se de que o unzip esteja instalado em seu sistema. Você pode usar o gerenciador de pacotes da sua distribuição para instalar o comando.
No Ubuntu e no Debian, você pode usar este comando:
sudo apt install unzip
Depois de verificar isso, vamos ver como usar a descompactação no terminal Linux.
Comando de descompactação no Linux
O comando unzip tem uma sintaxe muito simples:
unzip [option] zip_file
Se você usá-lo para extrair um arquivo zip sem qualquer opção, ele extrairá todos os arquivos do diretório atual:
unzip webdesign.zip
Archive: webdesign.zip
inflating: 339252-PAJF05-394.ai
inflating: 339252-PAJF07-322.eps
inflating: 339252-PALBTI-224.ai
inflating: 339252-PALBTL-394.eps
inflating: 339252-PALBTM-53.jpg
inflating: License free.txt
inflating: License premium.txt
E não é isso que você deseja na maioria das vezes. Isso simplesmente inundará seu diretório atual com todos os arquivos extraídos.
ls
339252-PAJF05-394.ai 339252-PALBTI-224.ai 339252-PALBTM-53.jpg 'License premium.txt'
339252-PAJF07-322.eps 339252-PALBTL-394.eps 'License free.txt' webdesign.zip
1. Descompacte em um diretório
O comportamento esperado é que você tenha os arquivos extraídos para um determinado diretório, normalmente com o mesmo nome do arquivo zip.
Você pode especificar o diretório de destino onde deseja extrair os arquivos.
unzip -d target_directory zip_file
Se o diretório de destino não existir, ele será criado. Porém, você não pode criar diretórios aninhados dessa maneira.
Observe que você também pode colocar o diretório de destino no final, mas nem todas as opções podem ser adicionadas no final.
unzip zip_file -d target_directory
2. Veja o conteúdo do arquivo zip sem extrair
Se você quiser ver o que o arquivo zip contém, nem sempre será necessário extraí-lo primeiro. Você pode usar a opção -l
e ela mostrará o conteúdo do arquivo zip.
unzip -l zip_file
Como você pode ver, ele também mostra o carimbo de data/hora dos arquivos e o tamanho real dos arquivos individuais em bytes.
abhishek@linux-console:$ unzip -l webdesign.zip
Archive: webdesign.zip
Length Date Time Name
--------- ---------- ----- ----
205358 2018-06-18 23:14 339252-PAJF05-394.ai
996906 2018-06-18 23:14 339252-PAJF07-322.eps
213968 2018-06-20 00:00 339252-PALBTI-224.ai
1005362 2018-06-20 00:00 339252-PALBTL-394.eps
305531 2018-06-20 00:00 339252-PALBTM-53.jpg
1462 2018-06-20 09:45 License free.txt
1116 2018-06-20 09:45 License premium.txt
--------- -------
2729703 7 files
Se desejar, você pode obter mais informações como tamanho compactado e taxa de compactação usando o modo detalhado com a opção -v
. O CRC-32 na saída é a verificação de redundância cíclica.
abhishek@linux-console:$ unzip -v webdesign.zip
Archive: webdesign.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
205358 Defl:N 142097 31% 2018-06-18 23:14 792f2380 339252-PAJF05-394.ai
996906 Defl:N 221228 78% 2018-06-18 23:14 440390d3 339252-PAJF07-322.eps
213968 Defl:N 147568 31% 2018-06-20 00:00 cdb64dfc 339252-PALBTI-224.ai
1005362 Defl:N 226727 77% 2018-06-20 00:00 aed3d97a 339252-PALBTL-394.eps
305531 Defl:N 183363 40% 2018-06-20 00:00 e4ced90f 339252-PALBTM-53.jpg
1462 Defl:N 728 50% 2018-06-20 09:45 0eb9e17b License free.txt
1116 Defl:N 558 50% 2018-06-20 09:45 165dd84e License premium.txt
-------- ------- --- -------
2729703 922269 66% 7 files
3. Substitua todos os arquivos sem avisar
Se já existirem arquivos com o mesmo nome no diretório onde você está extraindo os arquivos, você será promovido para cada um desses arquivos. Você pode forçar a substituição de todos os arquivos com a opção -o
.
unzip -o -d target_directory zip_file
4. Não sobrescreva nenhum arquivo -n
Se você não deseja que nenhum arquivo existente seja substituído por arquivos recém-extraídos, use a opção -n (significa nunca substituir).
unzip -n -d target_directory zip_file
5. Atualize arquivos e crie se necessário
Isso é um pouco diferente de substituir todos os arquivos. Nesse caso, apenas serão substituídos os arquivos que possuem carimbo de data/hora mais recente que os arquivos existentes. Se um arquivo não existir, ele será criado.
Você pode conseguir isso com a opção -u:
unzip -u -d target_directory zip_file
6. Atualize os arquivos existentes, mas não crie nenhum
Ligeira mudança em relação ao exemplo anterior aqui. Neste, ele atualizará os arquivos existentes se eles tiverem carimbo de data/hora mais antigo, mas não criará nenhum arquivo novo, mesmo que eles não existam.
A opção -f permite que você faça isso:
unzip -f -d target_directory zip_file
7. Extraia no modo silencioso
Ao descompactar um arquivo, todos os arquivos que foram extraídos são exibidos no display. Agora imagine um arquivo zip que contém centenas de arquivos. Se você extraí-lo, sua tela ficará confusa com a saída.
Você pode usar o modo silencioso com a opção -q
e não verá nada no display:
unzip -q -d target_directory zip_file
8. Exclua arquivos da extração
Você também pode excluir a extração de determinados arquivos ou determinados tipos de arquivos.
unzip zip_file -x file_to_exclude
No meu exemplo, digamos que eu não queira extrair nenhum arquivo .eps.
abhishek@linux-console:$ unzip webdesign.zip -x *.eps
Archive: webdesign.zip
inflating: 339252-PAJF05-394.ai
inflating: 339252-PALBTI-224.ai
inflating: 339252-PALBTM-53.jpg
inflating: License free.txt
inflating: License premium.txt
Esses foram alguns dos exemplos mais comuns do comando unzip no Linux. Você sempre pode verificar sua página de manual para aprender sobre mais opções.
Você usa alguma outra opção de descompactação com frequência? Por que não compartilhar conosco nos comentários?