shell-script-pt
[Top][All Lists]
Advanced

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

Descompactar arquivos pelo Nautilus


From: Alysson Gonçalves de Azevedo
Subject: Descompactar arquivos pelo Nautilus
Date: Sun, 15 Jan 2012 02:33:03 -0200

Salve pessoal (que fica até de madrugada brincando com shell)!

Bem, outro dia eu mandei um email da lista, sobre problemas com codificação
nos nomes do arquivos e talz.
Acontece que eu percebi que eu só tenho aquele problema quando eu uso o
programa padrão do gnome, através da opção "Extrair aqui", no menu de
contexto do nautilus.
Quando eu descompacto esses mesmos arquivos pelo terminal, usando programas
como gzip, tar e 7z, eu não tenho esse problema.

Com isso, decidi montar meu próprio script <http://pastebin.com/6rgRUgVL>,
nesse link, o programa já extrai os arquivos selecionados, ou se for uma
pasta, ele descompacta recursivamente, e etc.
Até aqui foi fácil.

Agora, como descompactar muitos arquivos pode ser "demorado", eu pensei eu
colocar o yad no meio... (como eu não sei usar nem yad, nem zenity, resolvi
começar pelo primeiro).

Seguindo esse 
exemplo<http://www.vivaolinux.com.br/artigo/Yad-016-Eu-quero-sempre-mais-de-ti/?pagina=4>,
eu gostaria que ao executar o script, uma tela de acompanhamento fosse
exibida, para o usuário saber se ainda está descompactando ou se já acabou.

Segue minha versão adaptada:

> # Para funcionar, salve este arquivo com um nome qualquer no diretório:
> #   "~/.gnome2/nautilus-scripts/"
> # O nome que colocar no arquivo será Exibido no menu de contexto do
> Nautilus.
> #
> # Para utilizar, basta apenas selecionar os arquivos, clique com o botão
> direito,
> # opção Scripts, clicar na opção com o nome desse script.
>
> OLDIFS=${IFS}
> IFS="
> "
> dcompact(){
>     #Muda o dir corrente para o dir passado por parametro e então extrai
> os arquivos la
>     [ -d ${1} ] && cd ${1} || cd "`dirname "$1"`"
>     #Lista os arquivos a serem descompactados
>     FILES=`find $1 -maxdepth 1 -type f -regex
> ".*\(zip\|rar\|7z\|tar\|gz\|bz2\|tar.gz\|tar.bz2\|lzma\)$"`
>     #Contador
>     i=0
>     for FNOME in ${FILES}
>     do
>         7z x -y "${FNOME}" & PID=$!;
>         QTD=$(ps aux | egrep "$PID.*" | wc -l)
>         while [ ${QTD} -eq 1 ]
>         do
>             i=$((i+1))
>             QTD=$(ps aux | egrep "$PID.*" | wc -l)
>             sleep 0.25
>             echo "$i"
>         done
>     done
>     killall yad
>     exit 0
> }
> dcompact ${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS} \
>   | yad --multi-progress --title='Extrair aqui' --button='Cancelar':1
> --bar="Extraindo-os...":NORM 5
>
> IFS=${OLDIFS}
>

Com esse script, a janelinha do Yad aparece e já some na sequencia (eu não
acredito que meu note seja tão rápido pra descompactar 4 arquivos de 200mb
cada em menos de 1s).

O meu problema é: eu não achei uma documentação como usar o yad, e apenas
tentar adaptar não deu resultado.
Alguém ai consegue me dar alguma dica, por menor que seja?!

Obrigado.


Alysson Gonçalves de Azevedo
(11) 8491-7730


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]