rm tem -i
e -I
sinalizadores para confirmar antes de cada remoção. No passado, algumas distribuições as ativavam por padrão. Esta é uma péssima ideia. Dê ao usuário muitas caixas de diálogo de confirmação para operações normais e elas começarão a confirmá-las habitualmente. Isso apenas muda o requisito de "ter cuidado" (sempre uma bandeira vermelha) para um novo e mais irritante diálogo. "Sim. Sim. Sim. Sim! SIM! Meu Deus, computador estúpido, basta excluir os arquivos YESYESYESYESYES - CRAP EU QUERO NÃO! NOOOOOOO!" Esse é o problema do diálogo "Sim, mas não quis dizer". Esta resposta fornece uma explicação visual do motivo pelo qual as caixas de diálogo de confirmação aparecem na hora errada.
O tipo de erro que você descreve é um deslize , "a execução de uma ação que não era o que se pretendia". O usuário normalmente reconhece imediatamente o erro e sabe exatamente como corrigi-lo. Infelizmente, o Unix não oferece ao usuário a oportunidade, rm exclui o arquivo imediatamente. Todos os outros sistemas operacionais resolvem esse problema, permitindo que as exclusões sejam desfeitas, pelo menos por um tempo, pelo uso da Lixeira.
Existem vários sistemas de lixo para o Unix, e esta resposta está cheia de sugestões .
A questão é alias rm ou não alias rm. Prós para aliasing rm ...
- Você não pode esquecer de usar a alternativa rm.
Contras de aliasing rm ...
- Você pode confiar nele em sistemas que não o possuem.
- Pode causar problemas quando o disco está quase cheio.
- Precisa de infraestrutura para esvaziar o lixo periodicamente.
- É necessário não interferir no comportamento esperado da empresa nos programas.
- Pode não emular completamente a rm.
Se você seguir o primeiro argumento longe demais, acabará usando vi (não vim, vi), csh (não tcsh, csh) e outros utilitários antiquados porque eles estão disponíveis universalmente. Ainda assim, existe o risco de supercustomizar seu ambiente. Prefiro levar meus utilitários comigo e tornar isso o mais fácil possível. YMMV.
Dois e três são problemas técnicos. Eles podem ser resolvidos com um trabalho inteligente de ceifeira que verifica o tamanho do lixo e limpa as coisas periodicamente, semelhante a um tmpreaper . Pode ser uma tarefa cron, ou uma versão mais inteligente pode fazer uso das várias infraestruturas de eventos do sistema de arquivos disponíveis em muitas distribuições de desktop Linux. Isso não é simples e ainda mais difícil de ser feito com eficiência. É melhor encontrar um sistema existente do que tentar criar o seu próprio.
O quarto pode ser resolvido transformando seu novo rm em um alias de shell alias rm='trash'
; portanto, ele não afetará os programas.
O quinto é um problema que deixo para o leitor resolver. O rm não possui muitos switches.
zsh
oubash
) Eu preferiria tomar o hábito de pressionar a tecla Tab (para acionar auto-realização) antes de pressionar a tecla Enter