Re: [longo] mudar o rm pra criar uma lixeira [solução]
No dia 01/05/2004 às 20:37,
Alan Kelon <kelon_debian@yahoo.com.br> escreveu:
> Olá,
>
>
> > Alguém aí já fez um script pra substituir o "rm" pra mover os arquivos
> > prum diretório de lixeira ao invés de apagar?...
>
> Eu nunca usei, mas a libtrash pode fazer o que você precisa. Quando
> aprender a usar, conta pra gente :)
Ótimo dica Alan. Procurando a respeito, achei um tutorial e acabei
instalando a 'libtrash', e funciona muito bem!
Eis o tutorial, escrito por Piter PUNK[1]
########
* Piter Punk's HomePage - artigos *
* Uma *Lixeira* no *Linux*
Piter PUNK
Quantas vezes isso não aconteceu? Você tranqüilo no seu canto e chega um
usuário desesperado: "Eu apaguei o arquivo XYZ! O quê eu faço agora?"
Normalmente a nossa resposta é: "Senta e chora."
1. Introdução
Depois do sujeito chorar bastante, podemos ensinar a ele a grande
máxima: faça backups! (e, se possível, tenha backups deles). Muitas
vezes o usuário não é suficientemente compreensivo quando ocorrem essas
coisas, e fica lembrando de recursos escusos de outros sistemas
operacionais...
Essa novela pode ser extremamente minimizada com o uso da libtrash. Com
ela, os arquivos apagados pelo nosso desatento usuário serão todos
copiados para um diretório especial. Se ele quiser *MESMO* apagar o
arquivo, terá que apagá-lo dentro deste diretório especial.
A instalação e configuração da libtrash são bem simples portanto, mãos à
obra!
2. Obtendo
Faça o download da libtrash no seguinte endereço:
http://m-arriaga.net/software/libtrash/libtrash-latest.tgz
Não se iluda, apesar do ".tgz" do fim, não se trata de um pacote para o
Slackware, teremos que compilar esta biblioteca a partir destes fontes.
Utilize o "tar" para extrair os arquivos:
# tar -xvzf libtrash-latest.tgz
No momento em que escrevo este artigo, a versão mais nova é a 2.1. Entre
no diretório libtrash-2.1. Você agora poderia compilar e instalar o
programa, já que segue o estilo "tradicional"
# make
# make install
Ou, se você quiser gerar o seu próprio pacote, substitua o "make
install" pelo checkinstall (no /extra do Slackware). Mas, não seja tão
afobado...
3. Antes de Configurar
A libtrash possui um esquema de configuração extremamente sui generis,
as configurações gerais dela só podem ser feitas em tempo de compilação.
Ou seja, você deve editar o libtrash.conf *ANTES* de compilar a biblioteca.
A idéia de quem fez a configuração é a de quê o arquivo
/etc/libtrash.conf deve servir apenas para informar aos seus usuários
quais as configurações que estão compiladas na libtrash. Não adianta
fazer alterações neste arquivo, já que ele não é lido pela libtrash. Se
você quiser utilizar a biblioteca com configurações "personalizadas",
deve editar o arquivo ~/.libtrash (pode tomar como base para esse
arquivo o /etc/libtrash.conf)
Portanto, se você quiser que a configuração da libtrash esteja
disponível para todos os seus usuários, tem duas opções:
1. Colocar uma mesma .libtrash para todos os seus usuários (colocando
no /etc/skel para os usuários novos e copiando para o $HOME de
todos os seus usuários antigos) ou;
2. Editar o arquivo libtrash.conf ANTES de compilar. Assim, você terá
uma configuração global padronizada para todos os seus usuários e,
se eles quiserem alterá-la, podem fazer seus próprios .libtrash
Particularmente, eu prefiro a opção 2, mas você pode usar a opção 1.
Caso prefira a opção 1, rode normalmente o make e o make install. Em
seguida, edite o seu arquivo .libtrash como será mostrado abaixo.
4. Configurando
Existem várias configurações no arquivo libtrash.conf (ou .libtrash), o
arquivo é extremamente bem documentado e qualquer um com um pouco de
conhecimento da língua inglesa pode selecionar as opções adequadas. Mas,
para os que querem ver logo a libtrash funcionando (que suponho serem a
maioria dos leitores), aqui vão as opções principais:
TRASH_CAN = Lalala
Onde, Lalala é o nome que você quer dar para o diretório que
irá conter os seus arquivos deletados. Se você não alterar,
o nome deste diretório será Trash
WARNING_STRING = Lalala lalala lalala
Aqui você substitui os Lalala pelo aviso a ser dado aos seus
usuários quando eles desabilitarem a libtrash. Esta opção
apenas pode ser configurada em tempo de compilação, não
sendo alterada via .libtrash
SHOULD_WARN = YES|NO
Com esta variável você configura se o aviso da opção
anterior será ou não mostrado quando a libtrash estiver
desativada
PROTECT_TRASH = YES|NO
Situação difícil. Se você configurar para "NO" será possível
limpar normalmente a TRASH_CAN, apenas apagando os arquivos,
mas com isso será possível dar um rm -rf * e acabar
perdendo vários dos seus arquivos.
Se escolher YES, será necessário desativar a libtrash todas
as vezes que for esvaziar a sua TRASH_CAN. Eu prefiro a
comodidade do YES.
IGNORE_HIDDEN, IGNORE_EDITOR_BACKUP e IGNORE_EDITOR_TEMPORARY
Estes todos podem variar como YES|NO. Com excessão do
primeiro, deixo todos como YES.
O primeiro avisa a libtrash para não guardar cópias dos
arquivos iniciados com "." como a maior parte dos arquivos
de configuração. Se você não tem amor pelas suas
configurações, pode deixar esta opção como YES.
Os dois últimos são, respectivamente, relativos aos arquivos
terminados em "~", e os arquivos iniciados com "#". Ambos
são arquivos bons de apagar. Costumo deixá-los como YES. Se
você achar melhor deixar como NO, prepare-se para a multidão
de arquivos ~ e # que irão se acumular...
GLOBAL_PROTECTION = YES|NO
Se você deixar como NO, apenas os arquivos que estiverem no
mesmo sistema de arquivos que o seu poderão ser recuperados.
É normal deixar como NO se você pretende apenas conservar o
$HOME de seus usuários.
Caso esteja selecionado como YES, os arquivos de outros
sistemas de arquivos serão copiados para a sua TRASH_CAN. Só
uma dica: isso costuma deixar a máquina mais lenta.
Como já dito anteriormente, existem várias outras opções, resolvi
destacar apenas as que considero mais importantes. Após editar o
libtrash.conf, pode compilar e instalar a libtrash sem maiores preocupações
5. Trabalhando com a libtrash
Existem duas maneiras de se ativar o libtrash. Uma delas é usando o
arquivo /etc/ld.so.preload porém esta idéia tem vários problemas... o
maior deles é que a libtrash não pode ser desativada e você pode causar
sérios danos ao seu sistema de arquivos.
Muito mais inteligente, é utilizar a variável de ambiente LD_PRELOAD
para carregar a biblioteca, para isso basta:
# export LD_PRELOAD=/usr/local/lib/libtrash.so
Com isso você irá carregar a libtrash e ela já estará em funcionamento.
Se quiser fazer isso sempre que logar no sistema, pode colocar este
comando no seu .bash_profile. E, se preferir colocar para todos os
usuários do sistema, pode inserir o comando no /etc/profile ou em algum
/etc/profile.d/libtrash.sh (neste segundo caso você teria que criar o
arquivo libtrash.sh e torná-lo executável)
Se você precisar desativar a libtrash por alguns instantes, ou para
apagar a sua TRASH_CAN, pode fazer:
# export TRASH_OFF=YES
E, para voltar a ativar a libtrash:
# export TRASH_OFF=NO
Se quiser "descarregar" a libtrash, pode fazer:
# unset LD_PRELOAD
Com tudo isto, agora você e seus usuários têm acesso a um método
interessante para recuperar seus arquivos apagados.
6. Conclusão
A libtrash é um recurso bastante interessante, principalmente para quem
possui usuários não muito ligados à idéia de se fazer backups. Com ela é
possível recuperar arquivos apagados, resgatando-os de um diretório
separado especialmente para isso.
É importante lembrar que, mesmo utilizando a libtrash ou qualquer outro
sistema que mantem uma cópia dos arquivos deletados, manter BACKUPS é
imprescindível. A libtrash não pode fazer nada se o seu HD queimar ou
coisas piores acontecerem.
Quaisquer dúvidas, sugestões ou críticas a respeito deste artigo podem
ser enviadas para: piterpk@terra.com.br
########
[1] A página não está mais no ar no site da hpg, o texto foi extraído do
cache do google.
Observações em relações ao Debian:
1) A biblioteca pode ser obtida mais facilmente via '# apt-get install
libtrash'.
2) Substituir '# export LD_PRELOAD=/usr/local/lib/libtrash.so' por '#
export LD_PRELOAD=/usr/lib/libtrash/libtrash.so'.
Ver também:
Implementando uma "lixeira" de arquivos no linux
http://brlinux.linuxsecurity.com.br/tutoriais/001231.html
--
Douglas Augusto
[Netiqueta]
§ Em mensagens longas (acima de 100 linhas), é recomendado incluir no campo
assunto a palavra "longo".
Reply to: