rm -rf rm -r rm -f rm
Lorsque l’une de ces commandes est exécutée, je souhaite qu’elles exécutent un script spécifique.
Quelque chose comme un alias ?='some_script.sh'
(le point d’interrogation dans ce cas signifie la commande rm avec des arguments quelconques.)
Comment cela peut-il être fait? Je n’ai pas à utiliser des alias, tout ce qui fonctionne est bien.
N’utilisez pas d’alias; définir une fonction:
rm () { some_script.sh command rm "$@" }
La clause de non-responsabilité standard lors de la modification du comportement de rm
s’applique de quelque manière que ce soit. Ne le faites pas c’est some_script.sh
est destiné à être un filet de sécurité de quelque sorte. Vous pouvez vous y fier et être désagréablement surpris si vous utilisez une machine sans ce filet de sécurité installé.
Si vous devez exécuter le script à chaque commande bash
, le mieux est de l’append à une variable spéciale dans bash
, qui s’exécute chaque fois qu’une commande est saisie dans l’invite.
La variable PROMPT_COMMAND
, il suffit d’append votre script some_script.sh
comme
$ PROMPT_COMMAND+="some_script.sh;"
Ou, si vous souhaitez créer un script uniquement pour la commande rm
, conserver un alias est le meilleur moyen de le faire. Ajouter la ligne dans votre ~.bashrc
et le source
après avoir effectué la modification.
alias rm="some_script.sh; rm"