#1 Le 14/04/2009, à 18:09
- poupougnac
Sécuriser la commande RM -R avec un alias demandant une confirmation
Bonjour à tous, je recherche une manière de sécuriser la commande rm -R, assez dangereuse puisqu'elle supprime tout simplement une arborescence complète sans confirmation.
J'ai trouvé une méthode très intéressante qui intègre une corbeille à rm:
http://cowww.epfl.ch/proginfo/wwwhiver/ … /task.html
C'est un peu trop car je manipule parfois plusieurs Go et j'aime pas trop les va-et-vient sur mon disque et penser à vider la corbeille (un cron ok mais bon...:|)
Ce que je veux c'est un alias shell dans $HOME/.bashrc du type:
alias rm_supprimer_tout_un_dossier='rm -R'
mais avec une confirmation, si j'incruste -i, il me demandera une confirmation pour chaque fichier... bof bof enfin il faudrait faire un script shell... Seriez-vous lequel?
Dernière modification par poupougnac (Le 14/04/2009, à 18:11)
Hors ligne
#2 Le 14/04/2009, à 18:12
- #hehedotcom\'isback
Re : Sécuriser la commande RM -R avec un alias demandant une confirmation
dans le .bashrc
alias='tacommande -tesoptions'
Dans ton cas, je pense que
alias rm='rm --interactive --verbose'
alias mv='rm --interactive --verbose'
alias cp='cp --verbose'
doit le faire
Dernière modification par #hehedotcom\'isback (Le 14/04/2009, à 18:13)
../
Hors ligne
#3 Le 14/04/2009, à 18:30
- poupougnac
Re : Sécuriser la commande RM -R avec un alias demandant une confirmation
Justement, le --interactive me demande confirmation à chaque fichier supprimer... Je cherche à n'avoir qu'une seule confirmation et que la commande soit executer. Y'a surement un peu de shell script là dedans!
Hors ligne
#4 Le 15/04/2009, à 13:13
- schaars
Re : Sécuriser la commande RM -R avec un alias demandant une confirmation
Bonjour
Le script suivant demande confirmation (o/n, avec non par défaut) avant de tout supprimer:
echo -n 'Supprimer tous les fichiers ? [o/N] '
read rep
if [ "$rep" == "o" ]
then
echo -n 'Suppression des fichiers'
rm.bak $* # appelle de la vrai commande rm, qu'on a renommé rm.bak
else
echo -n "Ok, on ne supprime rien"
fi
Après tu peux renommer le programme rm en rm.bak, appeler ce script rm, le mettre dans /bin, et dès lors lorsque tu taperas rm ça lancera ce script.
Le linux des uns est l'OS/2 des autres (Thom E. Gemcity)
Hors ligne
#5 Le 15/04/2009, à 13:24
- Shinjuku
Re : Sécuriser la commande RM -R avec un alias demandant une confirmation
En faisant quelque chose comme ceci ça devrait fonctionner :
alias rm='read -p "Tout supprimer? (o/n)" rep; [ "$rep" = "o" ] && /bin/rm'
A mettre dans ton ~/.bashrc.
Dernière modification par Shinjuku (Le 15/04/2009, à 13:25)
Ubuntu 9.10 dual boot Win 7 64 bits - AMD Athlon II X2 250, 4Go RAM, nVidia 8800GTS
Debian Lenny - AMD Phenom x6 1090T, 16Go RAM DDR3, 4x1To RAID10 + 1x1,5To
Hors ligne
#6 Le 15/04/2009, à 16:10
- poupougnac
Re : Sécuriser la commande RM -R avec un alias demandant une confirmation
Shinjuku merci beaucoup! C'est LA réponse qu'il me fallait. Marche niquel.
A mettre entre toutes les mains car on peut aller parfois trop vite avec rm et c'est pas simple de revenir!
Merci shaars, j'ai un bon exemple de shell script qui fonctionne mais beaucoup moins concis pour un simple alias.
Hors ligne
#7 Le 15/04/2009, à 16:42
- k-o-x
Re : Sécuriser la commande RM -R avec un alias demandant une confirmation
Remplacez
rm.bak $*
par
rm.bak "$@"
pour avoir un comportement correct lorsque vous passez des noms de fichier avec des espaces !
Hors ligne