En plaçant des commandes alias dans votre profil bash, vous bénéficierez d'une protection partielle contre l'écrasement. Comme d'autres l'ont mentionné dans leurs commentaires, vous devrez écrire un script pour ajouter la fonction diff.
J'ai placé les commandes ci-dessous dans mon ~/.bash_profile
.
Bash sur MacOS détermine quel fichier est votre profil bash dans cet ordre :
-
~/.bash_profile
-
~/.bash_login
-
~/.profile
Ces commandes indiquent à cp, mv et rm de vous avertir lorsqu'un fichier doit être écrasé ou supprimé :
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
# Placing a blank after sudo causes alias substitution
# for sudo's inner commands . See Gordon Davisson's comments below for
# details.
alias sudo='sudo '
Cet exemple suppose que vous avez placé les commandes ci-dessus dans votre profil bash.
mac $ touch a
mac $ touch aa
mac $ cp aa a
overwrite a? (y/n [n]) n
not overwritten
mac RC=1 $ rm a
remove a?
mac $ mv aa a
overwrite a? (y/n [n]) n
not overwritten
# demonstrate sudo protection
mac $ touch inin
mac $ sudo cp inin hihi
overwrite hihi? (y/n [n]) n
not overwritten
mac RC=1 $ sudo mv inin hihi
overwrite hihi? (y/n [n]) n
not overwritten
mac $ sudo rm inin hihi
remove inin? y
remove hihi? y
mac $
Ces commandes alias ne vous protègent pas dans toutes les circonstances, par exemple lorsque vous invoquez un nouvel interpréteur de commandes ou que vous exécutez cp, mv ou rm à partir d'autres commandes telles que find.
P.S. : Les alias mentionnés ci-dessus utilisent le même nom que la commande d'origine, ce qui a pour effet de la masquer. Pour accéder à la commande originale non aliasée, il faut la faire précéder d'un \
(par exemple, \cp
, \mv
, \rm
etc.)