Algum tempo atrás, eu excluí erroneamente minha pasta pessoal porque eu 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 criar um script como um apelido para rm
.
Você tem alguma prática recomendada a sugerir?
Obrigado.
rm
seja um comando perigoso que exija um apelido de segurança. Ao utilizar or
ef
opções, você está dizendo a shell Sei que é perigoso, e eu pensei cuidadosamente sobre isso, e é _really_ o que eu quero fazer . Se você não usar essas opções, não poderá excluir toda a sua pasta pessoal.rm
se acostumar com esse alias. Então, um dia, você estará em um sistema em que o alias não existe e fará a coisa errada quando menos esperar. E provavelmente não será o seu sistema.rm
derm -i
.Respostas:
Se você quiser um personalizado
rm
, não chamá-lorm
, mas um nome de vocês,myrm
,delete
ou o que quer.O
rm='rm -i'
alias é um horror, porque após um tempo de uso, você esperarárm
solicitar por padrão antes de remover os arquivos. Obviamente, um dia você o administrará com uma conta que não tenha 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 o protegerá contra exclusão ou substituição acidental de arquivos está usando um sistema de arquivos que suporta 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.
fonte
Se você deseja salvar aliases, mas não quer se arriscar a se acostumar com os comandos que funcionam de maneira diferente no seu sistema do que em outros, desabilite
rm
assimEntão você pode criar seu próprio apelido seguro, por exemplo
ou use
trash
.fonte
remove
comoecho "rm is disabled, use trash or /bin/rm instead." -irv
. E, apenas por uma questão de bom senso, você não gostaria que a mensagemrm
se referisse ao seuremove
comando seguro ?Você pode tentar usar
trash
. Lembre-se de esvaziá-lo de vez em quando ...fonte
Sem precisar alterar o perfil de todos, o que você pode fazer é colocar o arquivo chamado -i no diretório
fonte
.* *
, e não* .*
(o que eu acredito ser mais comum) ou* . *
(o que você disse). …………………………………………………………………… Para que esta técnica seja verdadeiramente efetiva globalmente, você precisaria fazê-lo em todos os diretórios nos quais tenha permissão de gravação . Mas eu concordo, é um truque legal.Eu uso o seguinte script.
Se você excluir um arquivo acidentalmente, recupere-o no
$HOME/tmp
.O script move os arquivos excluídos para um
tmp
diretório e os exclui da 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).fonte
No seu perfil,
fonte
rm -I
dá o melhor dos dois mundos, @jlliagre.Um script chamado
d
, com conteúdomv $* /tmp
.edit: Esta é uma má ideia; ver abaixo. Atualmente, tenho
alias d='mv -t /tmp'
no meu.profile
lugar.fonte
d "foo bar"
excluirá os arquivosfoo
ebar
). Algo mais seguro é provavelmente#!/bin/bash TRASH="$( mktemp -d -t trashed.XXX )"; echo "Moving to trash $TRASH"; mv -v -- "$@" "$TRASH"
(mktemp
e amv
sintaxe depende do seu sistema, este funciona para Linux).d
comando paraalias d='mv -t /tmp'
no meu.profile
; Eu acho que é a solução simples que eu estava procurando.Este código bash adiciona a função
rm
ao seu~/.bash_profile
arquivo de configuração. Depois de executar isso, se você escreverrm file
, você moverá esse arquivo para/tmp
fonte
rm
ao seu~/.bash_profile
arquivo de configuração. Depois de executar este arquivo, se você escreverrm file
, você moverá esse arquivo para o/tmp
.