Re: [FORA DO TOPICO] Ajudinha com script em bash
Em Thu, 15 Jan 2004 14:51:59 -1000
Marcio de Araujo Benedito <china@pbh.gov.br> escreveu:
> 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
> --
> Outgoing mail is certified Windows Free.
> Checked by Debian GNU/Linux <http://www.debian.org>.
>
> "free your computer and your soul will follow..."
>
Oi Márcio
Poderia ser algo assim:
<script>
#!/bin/bash
NOME=$(/usr/bin/basename $0)
if [ $# != 1 ];then
echo "Esse programa precisa de 1 argumento!";
echo "$NOME tar - para arquivos tar";
echo "$NOME bz2 - para arquivos bz2";
echo "$NOME zip - para arquivos zip";
echo "$NOME gz - para arquivos gz";
echo "$NOME all - para arquivos tar, bz2, zip e gz";
exit 1;
fi
TIPO=$1
case $TIPO in
tar) echo "Descompactando tar"; tar xvf *.$TIPO;;
bz2) echo "Descompactando bz2";tar jxvf *.$TIPO;;
zip) echo "Descompactando zip";unzip -vf *.$TIPO;;
gz) echo "Descompactando gz";tar zxvf *.$TIPO;;
all) for i in tar bz2 zip gz;do
descompacta.sh $i;
done;;
*) echo "Opção inválida! - tente tar,bz2,zip ou gz";;
esac
exit 0
</script>
--
(@_ Leandro Padilha Ferreira - leandro@androle.pro.br
//\
V_/_ http://androle.pro.br Linux user: #237.744
------------------------------------------
No corra... vuele!
Reply to: