Je viens de créer alias rm="rm -I"
pour éviter une commande rm
accidentelle.
-I Prompt once before removing more than three files, or when removing recursively.
Less intrusive than -i, while still giving protection against most mistakes
Mais ça ne marche pas. Je ne reçois aucune invite lorsque j'utilise rm -rf
Si vous lisez à nouveau l'aide vous verrez qu'il est dit précédent --interactive
. Cela signifie que vous pouvez ajouter un -I
après tous les autres arguments (comme à la fin de la ligne) et il sera à nouveau honoré!
Pour ce faire, vous avez besoin d'une fonction au lieu d'un alias, mais collez-la quelque part dans votre .bashrc
(et al) et vous êtes en or:
function rm { /bin/rm "$@" -I; }
Une méthode peut-être plus sûre que celle-ci consiste à utiliser trash-cli
's trash-put
commande. Il mettra des éléments dans le répertoire de la corbeille de votre compte qui peuvent être examinés/restaurés/vidés normalement. Il a aussi un mannequin -r
, -f
et, -i
arguments afin de rendre possible un alias parfait:
alias rm="trash-put"
Le problème ici est que -f
fait rm
ignorer toute commande interactive:
`-f'
`--force'
Ignore nonexistent files and missing operands, and never Prompt
the user. Ignore any previous `--interactive' (`-i') option.
La source: info coreutils 'rm invocation'