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.
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/
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. Comentários para "Implementando uma "lixeira" de arquivos no linux"
» Postado por: Marcio em outubro 24, 2003 02:34 PM, 200.204.36.:
» Postado por: EdCrypt em outubro 25, 2003 03:10 PM, 200.182.62.:
» Postado por: Manoel Pinho em outubro 25, 2003 08:25 PM, 200.141.98.:
» Postado por: The Darkness em outubro 26, 2003 01:56 AM, 200.214.81.:
» Postado por: flaviothunder em novembro 19, 2003 11:48 AM, 200.206.167:
» Postado por: Antonio em novembro 23, 2003 01:33 AM, 200.157.105:
» Postado por: Junior em dezembro 20, 2003 03:50 PM, 200.222.230:
» Postado por: Manoel Pinho em dezembro 30, 2003 10:46 AM, 200.20.121.:
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
|