Une corbeille en console [mis à jour][et corrigé]
Par Cygal le dimanche, juin 3 2007, 15:33 - Script - Lien permanent
Lorsque vous travaillez en console (ou avec un quelconque terminal graphique), un conseil répandu est de placer un alias sur rm pour éviter tout plein de malheurs.
alias rm='rm -i'
Une simple erreur de phrase peut être dévastatrice.
rm * ~
Ce que je vous propose, c'est d'utiliser une "corbeille", qui, au lieu de supprimer vos fichiers définitivement, les mettra dans un dossier qui vous servira de corbeille. Supposons dans notre cas que ce dossier s'appelle "trash" (vous pouvez aussi le préfixer d'un point pour qu'il soit caché). Il suffit alors de créer un fichier, genre, rm.sh, dans le dossier que vous voulez (ici, on dira "bin").
#!/bin/sh
mv "$@" ~/trash/
La première ligne indique que c'est un script qui devra être lu par sh, et la seconde indique qu'il faudra déplacer tous les arguments dans la corbeille. Ensuite, vous rendez ce programme éxecutable, à l'aide de la commande chmod u+x rm,sh. Ensuite, vous voulez peut-être "remplacer" rm par votre rm :
alias rm='~/bin/rm.sh'
Et si vous voulez que ça soit définitif, plus qu'à le mettre dans votre fichier .bashrc, par exemple. Vous pouvez aussi une fonction qui videra la poubelle avec des \rm (pour empêcher que l'alias rentre en jeu). Genre, euh :
#!/bin/sh
\rm ~/trash/*
C'est très rustique, parce qu'on ne sait pas où les fichiers étaient avant, et donc pour les restaurer c'est plus chiant (on dira ça sort de l'objet de ce billet, pour s'esquiver sans paraitre trop lâche.). Et puis au moins ils sont pas perdus. Enfin y'a de quoi s'amuser. N'est-il pas ?
Commentaires
Avec des guillemets autour du $@ c'est mieux.
En effet, merci c'est fait.
ça peut aussi être pratique de coupler ça à un truc genre
find ~/trash -atime 6 -delete
en crontab.
Moui, pourquoi pas, quoique ça me ferait un peu chier de perdre des fichiers comme ça, genre "oh tiens elle est où cette image que j'ai faite l'an dernier ?"