Lixeira restaurável

1. Lixeira restaurável

Williams Ramos
ff9will

(usa Ubuntu)

Enviado em 20/12/2007 - 16:02h

Eu lembro que "Restaurar itens da lixeira" era uma das vontades que os usuários linux queriam(pelo menos que eu saiba no Gnome isso não existe)...
Sou inicinate em shell script mas estou tentando criar(montar) algo parecido para o Nautilus...
Isso não é algo muito difícil e não sei como não foi implementado antes...
Uma opção seria através do Nautilus actions, criando um script e colocando no menu de arquivo(right-clicking)...
O que me falta para terminar isso é saber:
Por que este script colocado em Nautilus-script não funciona corretamente:

#!/bin/bash
#
for I in `echo $*`
do
mv -T $I /home/$USERNAME/.Trash/
data=`date +"%Y%j%H%M%S%N"`
origem=`pwd`
echo "$I:$origem:$data" >> ~/.trasher
done
done
exit0

O intuito desse scrpit é mover para a lixeira registrando num arquivo(.trasher)
os dados como nome do arquivo, origem, data e hora, permissões, para depois ele poder ser restaurado por outro script.

O que tenho notado é que este script funciona somente na pasta pessoal.
A variável $I captura o arquivo clicado(o nome dele) para depois ser manejado...

O engraçado é que a maior parte deste script funciona no script de montar ISO mas não com o comando mv.
Parece que apesar de o arquivo em que eu testei estar na área de trabalho, o valor da variável $origem é sempre a minha pasta pessoal (/home/williams), mesmo ela não sendo minha área de trabalho(o nautilus d'esa opção de usar a pasta pessoal como área de trabalho).

Após executar o script o resultado do arquivo .trasher foi o esperado:
arquivo_teste:/home/williams:20073521538500909
porém o arquivo não estava na pasta /home/williams e sim em /home/williams/Desktop (Obs.: Eu sei que no Ubuntu Gutsy desktop se chama Área de trabalho, mas uso o Ubuntu Dapper,e ainda é Desktop).

Será que o problema está no comando mv?
Ou está entre o computador e a cadeira?
hehehe

Já tentei mudar alguns parâmetros do mv( -T):

#!/bin/bash
#
for I in `echo $*`
do
mv $I /home/$USERNAME/.Trash/
data=`date +"%Y%j%H%M%S%N"`
origem=`pwd`
echo "$I:$origem:$data" >> ~/.trasher
done
done
exit0

Assim também não funciona:

#!/bin/bash
#
for I in `echo $*`
do
mv $I ~/.Trash/$I
data=`date +"%Y%j%H%M%S%N"`
origem=`pwd`
echo "$I:$origem:$data" >> ~/.trasher
done
done
exit0

Mas mesmo assim não funcionou em outro lugar a não ser na pasta pessoal.

Alguma solução, pessoal?


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts