Como posso desabilitar o comando 'rm'?

1

Eu tenho um histórico muito ruim do arquivo rm ing e depois me arrependo. Eu criei um comando trash que estou tentando usar mais.

No entanto, ainda tenho muita memória muscular construída em torno de rm . Existe alguma maneira que eu poderia desvantagem do comando rm ? Talvez forçá-lo a me dar uma confirmação ou apenas torná-lo inutilizável?

    
por Aakil Fernandes 20.11.2015 / 19:28

2 respostas

2

Normalmente, uma boa estratégia e, especialmente, para usuários com privilégios de administrador, é aliasing o comando rm para rm -i, que requer confirmação.

coloque-o no seu .bashrc

alias rm='rm -i'
    
por 20.11.2015 / 19:32
1

Fazer rm solicitar confirmação (como na resposta de Rui F Ribeiro ) você terá o hábito de depender disso. Então, se você fizer login em um sistema diferente, você terá uma surpresa indesejável.

Em vez disso, sugiro que você se treine novamente - duas abordagens vêm à mente:

Um, que você sugeriu, é fazer com que rm simplesmente não funcione. Isso é bastante fácil, alias rm=~/bin/dont-use-rm (e depois, opcionalmente, criar esse script com um eco lembrando você e um exit 1 ).

O segundo é treinar-se para sempre digitar rm -i . Você poderia fazer a si mesmo: novamente alias rm=~/bin/force-rm-i , e ter que ser um script de shell ao longo das linhas de:

#!/bin/sh

if [ '-i' != "$1" ]; then
    # you could use getopt, etc. for better command-line parsing, but that
    # is much more work.
    echo -e "\aIgnoring your command because you forgot to use 'rm -i'."
    exit 1
else
    exec rm "$@"
fi

(Nota: "echo -e" pode não ser suportado por todos os shells; sinta-se à vontade para usar /bin/bash no topo se o seu /bin/sh não o fizer.)

Use aliases para isso, porque você pode facilmente configurá-los para afetar somente os shells interativos - você não quer quebrar o "rm" nos scripts de shell.

    
por 20.11.2015 / 20:01

Tags