Descompactar vários arquivos com uma linha de comando

Uma coisa que eu costumo fazer no GNU/Linux é descompactar vários arquivos de uma vez, em um mesmo diretório. Um exemplo disso são arquivos de temas ou de módulos de determinado programa ou aplicação web. Como eu gosto de usar a linha de comando, eu preciso abrir arquivo por arquivo, pois os comandos de descompactação não aceitam curingas (por exemplo o *) no nome do arquivo. Quando a quantidade de arquivos compactados é muito grande, essa tarefa torna-se bem maçante.

Tentando resolver o meu problema, dei uma batida na Internet e achei essa dica no sítio do Viva o Linux. Fiz uma pequena alteração para que ele funcione em uma única linha de comando (ao invés de um arquivo de script) e apresento abaixo as três versões para os formatos mais populares de compactação. Obviamente, basta alterar o comando do descompactador para que ele funcione com outros formatos não citados aqui. Além disso, com pequenas modificações é possível gerar um script mais elaborado, onde é possível colocar os diretórios onde estão os arquivos e para onde eles devem ir. Entretanto, esse não é o propósito desse artigo. A idéia aqui é uma solução rápida para a descompactação de vários arquivos. É importante destacar que a descompactação será realizada no diretório onde você está executando a linha de comando. Tome cuidado com isso para evitar efeitos indesejáveis. Em caso de dúvidas, crie um diretório de testes e rode o comando lá.

Arquivos compactados como tar.gz

for x in `ls *.tar.gz`;do tar xzvf $x;done

Arquivos compactados como tar.bz

for x in `ls *.tar.bz`;do tar xzvf $x;done

Arquivos compactados como zip

for x in `ls *.zip`;do unzip $x;done

Posted in Sem categoria and tagged , , , , , , .

7 Comments

  1. Bom dia, boa tarde ou boa noite! Pessoal, para quem tem algum arquivo com espaços e não consegue extrair, vou dar uma dica; usem:

    for i in *.zip;do unzip “$i”;done

    Dessa forma conseguirá extrair arquivos com espaços. Essa foi a forma mais fácil que achei para contornar esse problema. Espero que ajude alguém!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *