rm tem -i
e -I
sinalizadores para confirmar antes de cada remoção. No passado, algumas distribuições as ativaram por padrão. Essa é uma ideia terrível. Dê ao usuário muitos diálogos de confirmação para operações normais e eles começarão a confirmá-los habitualmente. Isso apenas muda a exigência de "ter cuidado" (sempre uma bandeira vermelha) para um novo e mais chato diálogo. "Sim. Sim. Sim. Sim! Sim! Deus, droga, computador idiota, apenas apague os arquivos SIMESESTIENSEYESYESYES - EXCREMENTO NÃO SIGNIFICADO! NOOOOOOO!" Este é o problema de diálogo "Sim, mas não quis dizer". Esta resposta fornece uma explicação visual de por que os diálogos de confirmação chegam na hora errada.
O tipo de erro que você descreve é um slip ," o desempenho de uma ação que não era o pretendido ". O usuário geralmente reconhece imediatamente o erro e sabe exatamente como corrigi-lo. Infelizmente, o Unix não dá ao usuário a oportunidade, o 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 de rm.
Contras ao aliasing rm ...
- Você pode confiar em sistemas que não o possuem.
- Pode causar problemas quando o disco está quase cheio.
- Precisa de infraestrutura para esvaziar a lixeira periodicamente.
- Certifique-se de não interferir com o comportamento esperado de rm nos programas.
- Pode não ser totalmente emulado rm.
Se você seguir o primeiro argumento longe demais, acabará usando o 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 perigo de overcustomizing seu ambiente. Eu prefiro levar meus utilitários comigo e fazer isso o mais fácil possível. YMMV.
Dois e três são problemas técnicos. Eles podem ser resolvidos com um trabalho de reaper inteligente que verifica o tamanho do lixo e periodicamente limpa as coisas, semelhante a um tmpreaper . Este pode ser um cron job, ou uma versão mais inteligente pode fazer uso das várias infra-estruturas de eventos do sistema de arquivos disponíveis em muitas distribuições Linux de desktop. Isso não é simples e ainda mais difícil de ser feito com eficiência. É melhor encontrar um sistema existente do que tentar fazer o seu próprio.
O quarto pode ser resolvido tornando seu novo rm um alias de shell, alias rm='trash'
, então ele não afetará os programas.
O quinto é um problema que deixo para o leitor resolver. rm não tem muitos switches.