Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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