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

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: