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
Grav was with by Trilby Media.