Autor Tópico: Script COPIAR PARA no Nautilus...  (Lida 2112 vezes)

Offline okudak

  • Usuário Ubuntu
  • *
  • Mensagens: 1
    • Ver perfil
Script COPIAR PARA no Nautilus...
« Online: 01 de Dezembro de 2008, 21:26 »
Galera...

Estou tentando montar um script para Copiar pastas e arquivos selecionados no Nautilus... me dando a opção de escolher a pasta para onde copiar...

Até agora... o script está assim :

#!/bin/bash
#
#Nome: Copiar para...
#Autor: Carlos Figueiredo
#e-mail: carlos.figueiredo87@gmail.com
#
#Obs.: Script para copiar arquivos e pastas selecionadas no Nautilus, para pastas escolhidas posteriormente
#
#Dependências: zenity
#
destino="$(zenity --file-selection --directory)"
for origem in `echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"`;do
zenity --info --text=$origem
zenity --info --text=$destino
cp -r "$origem" "$destino"
done
#

O script está funcionando somente para arquivos e pastas que não possuem espaço, sejam na origem, ou no destino...
Mas gostaria que ele funcionasse tanto para arquivos com espaço no nome... quanto para os que não possuem espaço... e não estou conseguindo...
Se alguem puder ajudar, agradeço!!!

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Script COPIAR PARA no Nautilus...
« Resposta #1 Online: 02 de Dezembro de 2008, 14:28 »
Aqui funcionou 100% para a copia de um arquivo com espaço no nome, para a Área de Trabalho. Teste ai e de um retorno:

Citar
#!/bin/bash
#
#Nome: Copiar para...
#Autor: Carlos Figueiredo
#e-mail: carlos.figueiredo87@gmail.com
#
#Obs.: Script para copiar arquivos e pastas selecionadas no Nautilus, para pastas escolhidas posteriormente
#
#Dependências: zenity
#
destino="$(zenity --file-selection --directory --title "Copiar para")"

test "$destino" = "" && zenity --error --title "Copiar para" --text="Cópia Cancelada." && exit

IFS_OLD="$IFS"
export IFS="
"

for origem in `echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"`;do
    test $origem = $destino && zenity --error --title "Copiar para" --text="Origem ($origem) é igual a Destino. Item ignorado." && continue

    cp -r "$origem" "$destino"

    test $? -ne 0 && zenity --error --title "Copiar para" --text="Erro ao copiar $origem." && continue
done

zenity --info --title "Copiar para" --text="Copia terminada com sucesso."


export IFS=$IFS_OLD

A sim, coloquei uns poucos testes na rotina, apesar de saber que teriam outros para colocar.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!