[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [FORA DO TOPICO] Ajudinha com script em bash



Já tentou assim:

find /diretorio/dos/arquivos -iname "*tar.bz2" -exec tar -xjvf {} \;
find /diretorio/dos/arquivos -iname "*tar.gz" -exec tar -xzvf {} \;
find /diretorio/dos/arquivos -iname "*tgz" -exec tar -xzvf {} \;
find /diretorio/dos/arquivos -iname "*zip" -exec unzip {} \;

traduzindo:

find /diretorio/dos/arquivos : comando de busca e ONDE buscar
-iname "*zip" : diz o QUE buscar e que deve ignorar a caixa
-exec tar -xjvf : executa o comando uma vez pra cada arquivo localizado
{} \; : passa o nome do arquivo encontrado como parâmetro e encerra o exec

"man find" pra mais informaçoes.

Marcio de Araujo Benedito wrote:
Por necessidade, com meus parcos conheciemntos de shell script, fiz um
bacalhau para descompactar multiplops arquivos:

china@localhost:~$ cat /usr/local/bin/descompacta
#!/bin/bash
for i in $*
do
tar -zxvf $i
done
china@localhost:~$

Entao eu uso
china@localhost:~$ descompacta /onde/estao/os/arquivos/*

Sendo que o $* recebe a lista de arquivos apontada no caminho como
entrada.

Esta funcionando, so que toda vez que tenho de descompactar arquivos de
outras extensoes eu tenho de editar o script e trocar o comando. Isso
ate que nao e problema, mas, ja que fiz a marreta, gostaria de fazer
algo elegante. Entao pergunto:

Como fazer com que as entradas em *.zip, *.tar.bz2 e outros formatos
compactados contidos no mesmo diretorio sejam descompactados ao mesmo
tempo?
Tipo: tenho um diretorio contendo:

arquivo1.tar.gz
arquivo2.tar.bz2
arquivo3.zip
arquivo4.gz
arquivo5.rar

seja passado como parametro para o script e ele descompacte todos na
hora que eu mandar china@localhost:~$ descompacta /diretorio/*

[]'s


--
Bento Loewenstein
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCM$/IT d--- s:+ a? C++(++++) UL+++(++++) UB+ P++ L+++@++++ E---
W+(++) N+ w--- PS++(+++) Y+ t(+) 5+++ X R tv+ b++ D++ G e+ h! r* y?
------END GEEK CODE BLOCK------



Reply to: