br-linux

Artigos br-linux.org
Artigos sobre Linux em bom português, originais e com qualidade

O texto abaixo foi publicado no BR-Linux antes de 2005, e está mantido aqui por razões históricas. Veja o material atualizado diariamente do BR-Linux em http://br-linux.org
Implementando uma "lixeira" de arquivos no linux
Publicado em 23 de outubro de 2003
 

Manoel Pinho (pinho@uninet.com.br) escreve: "Um dos problemas que normalmente enfrentamos no linux, principalmente no uso como desktop de leigos, é a questão: "Apaguei sem querer alguns arquivos... Como faço para recuperá-los ?". Os desktops KDE e Gnome possuem lixeiras de arquivos que armazenam os arquivos apagados pelos respectivos gerenciadores de arquivos (konqueror e nautilus), mas e fora destes ambientes?"

Como é no M$ Windows ?

Neste SO existe uma lixeira, que é ativada por default. Mas esta lixeira é usada se você remove um arquivo pelo explorer; se você fizer isso no prompt de comando ela não funcionará. Ela também não lida com o caso de um programa apagar o arquivo (como um vírus por exemplo).

Sim, existem algumas ferramentas tais como recover para fazer tudo isso mas você deverá usar o mais rápido possível (with spell book and chiken blood on your computer) e, é claro, sem qualquer garantia.

Para ter toda a funcionalidade desejada é necessário usar aplicativos como o "Norton Utilities". Estes programas rodam como serviços (os "daemons" windows) e capturar a chamada de sistema de apagamento de arquivos para mover o arquivo em vez de apagá-lo. Isto funciona mas não é gratuito.

E no Linux (Unix, BSD, ...) ?

Há o mesmo problema encontrado no Windows. Se você utiliza o Gnome ou KDE poderá usar a lixeira, mas no terminal não haverá soluções "undo" (desfazer).

Contudo, existem algumas soluções diferentes:

1) aliases

Esta solução cria um alias do comando "rm" para uma ferramenta (um script por exemplo) que move arquivos para a lixeira em vez de apagá-los.

Infelizmente, esta solução funciona somente na shell.


2) biblioteca libtrash

Esta solução afeta todas as chamadas do sistema para "unlink", tais como aquelas da GNU libc, a fim de mover para a lixeira ao invés de apagar os arquivos.

A libtrash é, de fato, uma biblioteca dinâmica que, quando carregada (LD_PRELOAD), intercepta as chamadas às funções "unlink", "rename", ... da GNU libc.

Site da libtrash:

http://m-arriaga.net/software/libtrash/


3) um módulo de kernel "lixeira" (recycled)

Usa a mesma idéia da libtrash, mas em baixo nível: intercepta somente chamadas à função do kernel "sys_unlink", em vez da função "unlink" da GNU libc.

Esta solução é implementada pelo Recycled4Linux:

http://shirka.dyndns.org/phpwebsite/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=2&MMN_position=1:1

Eu particularmente ainda não testei essa última solução pois acabei de conhecer este programa :-)

Este texto mesmo foi traduzido e adaptado da apresentação do Recycled4Linux. Achei interessante e didático e resolvi postar aqui.

Postado por brain em outubro 23, 2003 11:05 PM


Comentários para "Implementando uma "lixeira" de arquivos no linux"

» Postado por: qwqw em outubro 24, 2003 01:36 PM, 200.227.21.:

    Isso é artigo ?

 

» Postado por: Marcio em outubro 24, 2003 02:34 PM, 200.204.36.:

    Não ficou legal mesmo .... não para a área de tutoriais ... nem para artigo ... é mais um link .... :-)

 

» Postado por: EdCrypt em outubro 25, 2003 03:10 PM, 200.182.62.:

    Isso deveria ser implementado nas distribuições.

 

» Postado por: Manoel Pinho em outubro 25, 2003 08:25 PM, 200.141.98.:

    Quando mandei o texto para o Augusto eu não disse que era um tutorial. Na verdade, eu estava pensando mais em uma daquelas sugestões de softwares que aparecem neste site.

    Também não escondi que o texto não é de minha autoria, como aparece na última frase. A minha idéia foi traduzir este texto e apresentá-los a quem não o conhecia estes softwares ou que não lê bem em inglês. Portanto, continuo achando que não é uma perda de tempo este texto ter aparecido aqui.

    Sinceramente eu já estou de saco cheio de gente que só sabe tacar pedras e não faz nada melhor. Por isso esse país está nessa situação.

 

» Postado por: The Darkness em outubro 26, 2003 01:56 AM, 200.214.81.:

    Vou testar estas soluções de LIXEIRA no LINUX amanhã mesmo.
    Isso é um recurso realmente fundamental para a adoção de DESKTOPS em LINUX.

 

» Postado por: flaviothunder em novembro 19, 2003 11:48 AM, 200.206.167:

    Interessante...
    Acho que vou testar...

 

» Postado por: Antonio em novembro 23, 2003 01:33 AM, 200.157.105:

    Achei interessante e o autor tem razão no seu desabafo .Afinal o que vale é a informação !

 

» Postado por: Junior em dezembro 20, 2003 03:50 PM, 200.222.230:

    Dica de ouro: pense sempre duas vezes antes de apertar o enter em uma linha contendo rm, principalmente com argumentos -rf.
    Segundo: uma boa idéia é ao invés de apagar os arquivos, mover para a pasta /tmp.
    Algumas distros (debian), apagam esta pasta ao reiniciar, mas isso pode ser configurado em /etc/defaults/rcS, colocando quantos dias de idade um arquivo deve ser apagado em /tmp.

 

» Postado por: Manoel Pinho em dezembro 30, 2003 10:46 AM, 200.20.121.:

 

» Postado por: Alexandre em maio 12, 2004 08:17 PM, 200.140.11.:

    lixeira sux

 

Antes de comentar...

- Preserve a qualidade desta discussão
- Leia os Termos de Uso.
- Este formulário deve ser usado para comentários sobre a notícia. Se você tem dúvidas ou precisa de ajuda, use o Fórum.
- Mantenha o foco nos argumentos e no assunto
- Não faça ataques pessoais.
- Pense 5 vezes antes de entrar em discussões inúteis, como "qual é a melhor distribuição/ambiente gráfico/linguagem de programação/etc.", mesmo se alguém já tiver provocado - um erro não justifica o outro
- Não seja um e-mala ;-)

Envie seu comentário









Lembrar as informações pessoais?


Atenção: Este formulário deve ser usado para comentários sobre a notícia. Se você tem dúvidas ou precisa de ajuda, use o Fórum, onde mais pessoas estarão disponíveis para respondê-lo..






Nota: os comentários pertencem a seus respectivos autores e são de responsabilidade de quem os postou. O restante desta nota está disponível sob a licença GNU FDL, exceto se explicitamente declarado em contrário.