Há algum tempo, excluí erroneamente minha pasta pessoal porque executei um rm -rf *
no terminal errado, cujo diretório de trabalho era a pasta pessoal!
Eu gostaria de ter um apelido para o rm
comando, mas não foi o caso.
Agora, estou planejando fazer um script como alias para rm
.
Você tem alguma prática recomendada para sugerir?
Obrigado.
Responder1
Se você quiser um personalizado rm
, não chame, rm
mas sim um nome seu, myrm
, delete
ou qualquer outro nome.
O rm='rm -i'
alias é um horror porque depois de um tempo de uso, você esperará rm
uma solicitação padrão antes de remover arquivos. Claro, um dia você irá executá-lo com uma conta que não tem esse alias definido e antes de entender o que está acontecendo, será tarde demais.
De qualquer forma, uma boa maneira de estar preparado para perda ou corrupção de arquivos é fazer backups.
Uma alternativa rápida que irá protegê-lo contra exclusão ou substituição acidental de arquivos é usar um sistema de arquivos que suporte instantâneos ilimitados, como o ZFS. Se instantâneos frequentes forem feitos automaticamente, você poderá recuperar os arquivos no estado em que estavam durante o último instantâneo antes do incidente.
Responder2
Se você quiser salvar aliases, mas não quer correr o risco de se acostumar com os comandos funcionando de maneira diferente em seu sistema e em outros, você pode desabilitar rm
assim
alias rm='echo "rm is disabled, use remove or trash or /bin/rm instead."'
Então você pode criar seu próprio alias seguro, por exemplo
alias remove='/bin/rm -irv'
ou use trash
em vez disso.
Responder3
Você poderia tentar usartrash
em vez de. Lembre-se de esvaziá-lo de vez em quando...
Responder4
Eu uso o seguinte script.
#!/bin/sh
trash=$HOME/tmp
mv "$@" $trash
nohup find "$trash" -type f -atime +7 -exec /bin/rm '{}' \; 2>&1 &
Se você excluir acidentalmente um arquivo, recupere-o do arquivo $HOME/tmp
.
O script move os arquivos excluídos para um tmp
diretório e os exclui na próxima vez que o script de exclusão for executado se o tempo de acesso for 7 dias depois (limpeza semiautomática do $HOME/tmp
diretório).