OVH Cloud OVH Cloud

"Corbeille" pour linux

8 réponses
Avatar
Guillaume REMY
Bonsoir,


Je suis à la recherche d'un petit programme (ou script remplacant rm par
exemple) permettant de gérer une poubelle sous linux, afin que les
fichiers supprimés soient déplacés dans un répertoire trash à la place
d'être réellement supprimés.

Pour l'instant je n'ai trouvé que recycled4linux, mais apparemment c'est
un patch pour le noyau, et je préfèrerais un logiciel n'intervenant pas
sur le noyau (si possible).

Quelques suggestions ?

Merci d'avance.

8 réponses

Avatar
Kevin Denis
In article <ipEwd.4968$, Guillaume REMY wrote:

Je suis à la recherche d'un petit programme (ou script remplacant rm par
exemple) permettant de gérer une poubelle sous linux, afin que les
fichiers supprimés soient déplacés dans un répertoire trash à la place
d'être réellement supprimés.

http://www.linuxgazette.com/book/print/8369

par exemple?

Sinon, rm_secure sur google donne plein de resultats
--
Kevin

Avatar
Dominique
Guillaume REMY wrote:

Bonsoir,


Je suis à la recherche d'un petit programme (ou script remplacant rm par
exemple) permettant de gérer une poubelle sous linux, afin que les
fichiers supprimés soient déplacés dans un répertoire trash à la place
d'être réellement supprimés.


Bonsoir,

Linux Pratique n°22 a donné un script semblable très pratique.
Je m'en sers en permanence (alias rm=srm).
Donnez-moi votre BAL et je vous l'enverrai.
Bonne soirée,
Dominique

Avatar
Dominique
Kevin Denis wrote:

http://www.linuxgazette.com/book/print/8369
par exemple?

Sinon, rm_secure sur google donne plein de resultats


Le script de Linux Pratique est en français, enfin, l'aide...
Autrement, je suppose que c'est pareiul.
Dominique

Avatar
Emmanuel Florac
Le Fri, 17 Dec 2004 18:11:12 +0100, Guillaume REMY a écrit :


Je suis à la recherche d'un petit programme (ou script remplacant rm par
exemple) permettant de gérer une poubelle sous linux, afin que les
fichiers supprimés soient déplacés dans un répertoire trash à la
place d'être réellement supprimés.


Si c'est pour la commande rm, tu peux ajouter une ligne dans ton .bashrc:

rm () { /bin/mv -i ${*} ~/Trash/; }


--
A thing of beauty is a joy forever.
J. Keats.

Ah! Singe débotté, hisse un jouet fort et vert!
Marcel Bénabou.

Avatar
Guillaume REMY


Je suis à la recherche d'un petit programme (ou script remplacant rm par
exemple) permettant de gérer une poubelle sous linux, afin que les
fichiers supprimés soient déplacés dans un répertoire trash à la
place d'être réellement supprimés.



Si c'est pour la commande rm, tu peux ajouter une ligne dans ton .bashrc:

rm () { /bin/mv -i ${*} ~/Trash/; }




J'avais pensé à cette solution, mais pour les fichiers ne se situant pas
sur la meme partition que ~/Trash, la copie prend longtemps... en fait
il me faudrait un répertoire trash par disque...

Merci, je vais voir ce que je peux faire avec le script de Dominique.


Avatar
Guillaume REMY
Guillaume REMY wrote:


Bonsoir,


Je suis à la recherche d'un petit programme (ou script remplacant rm par
exemple) permettant de gérer une poubelle sous linux, afin que les
fichiers supprimés soient déplacés dans un répertoire trash à la place
d'être réellement supprimés.



Bonsoir,

Linux Pratique n°22 a donné un script semblable très pratique.
Je m'en sers en permanence (alias rm=srm).
Donnez-moi votre BAL et je vous l'enverrai.
Bonne soirée,
Dominique



Je veux bien que vous m'envoyez ce script !

Pour mon adresse, et bien c'est tout simplement celle depuis laquelle
j'ecris :

Merci bcp !


Avatar
Dominique
Guillaume REMY wrote:

Pour mon adresse, et bien c'est tout simplement celle depuis laquelle
j'ecris :


Je rencontre un problème sur votre adresse. Peu importe, vous trouverez le
script ci-dessous.
Bonne corbeille,
Dominique

***************************************
#!/bin/bash

# v : verbeux
# h : aide en ligne
# l : liste mais avec affichage personnalis�# e : vider la corbeille
# r : vider r�ursivement les r�ertoires
# s : restituer un fichier
# S : restituer un fichier dans son r�ertoire d'origine

# R�ertoire corbeille
corbeille=$HOME/.corbeille

IFS=$'n'

# Initialisation des variables d'option
optrecursif=0
optaide=0
optverb=0
optlist=0
optvide=0
optrestore=0

while getopts ":vhlers:S:" option
do
case $option in
v) optverb=1 ;;
h) optaide=1 ;;
l) optlist=1 ;;
e) optvide=1 ;;
r) optrecursif=1 ;;
s) optrestore=1
restore=$OPTARG;;
S) optrestore=2
restore=$OPTARG;;
# en cas d'option erron�, on affiche l'aide
*) echo "Option -$OPTARG inconnue"
optaide=1 ;;
esac
done
shift $((OPTIND - 1))

# V�ification de l'existence du r�ertoire corbeille
if [ ! -d "$corbeille" ]
then
mkdir "$corbeille"
fi

# Affichage de l'aide
if [ $optaide == 1 ]
then
echo "Usage : $0 [options] [fichiers �effacer]";
echo "Options :"
echo " -v : mode verbeux"
echo " -h : affiche cette aide"
echo " -r : effacement r�ursif des sous-r�ertoires"
echo "-s fichier : restitue un fichier"
echo "-S fichier : restitue un fichier dans son r�ertoire d'origine"
echo " -l : affiche le contenu de la corbeille"
echo " -e : vide la corbeille"
exit 0
fi

# Affichage du contenu de la corbeille
if [ $optlist == 1 ]
then
if [ $optrecursif == 1 ]
then
liste=$(ls -RF --color "$corbeille")
else
liste=$(ls -F --color "$corbeille")
fi

echo "${liste//__SLASH__//}" | more
du -h --max-depth=0 $corbeille
exit 0
fi

# Vider la corbeille
if [ $optvide == 1 ]
then
if [ $optverb == 1 ]
then
du -h --max-depth=0 $corbeille
echo "Vidange de la corbeille..."
fi

rm -rf $corbeille/*

if [ $optverb == 1 ]
then
du -h --max-depth=0 $corbeille
fi
exit 0
fi

# Restitution de fichiers effac�
if [ $optrestore != 0 ]
then
fichier=($(ls -1 $corbeille | grep $restore))
if [ ${#fichier[*]} == 0 ]
then
echo "Aucun fichier ne correspond au motif $restore"
exit 0
fi

if [ $optrestore == 2 ]
then
for fic in ${fichier[*]}
do
restoredfile=${fic//__SLASH__//}
if [ $optverb ]
then
echo "$restoredfile restitu�
fi
mv "$corbeille/$fic" "$restoredfile"
done
elif [ $optrestore == 1 ]
then
for fic in ${fichier[*]}
do
restoredfile=$(echo $fic | sed 's/.*__SLASH__//g')
if [ $optverb ]
then
echo "$restoredfile restitu�
fi
mv "$corbeille/$fic" "$restoredfile"
done
fi
exit 0
fi

# Action principale : effacer les fichiers
for fichier in $*
do
if [ -d "$fichier" -a $optrecursif != 1 ]
then
echo "$fichier est un r�ertoire, il ne peut �re effac�
continue
fi

path=$(pwd $fichier)

if [ $optverb ]
then
echo "$fichier -> $corbeille/"
fi
mv "$fichier" "$corbeille/${path////__SLASH__}__SLASH__$fichier"
done
du -h --max-depth=0 $corbeille

Avatar
GERBIER Eric
Guillaume REMY wrote:
Bonsoir,


Je suis à la recherche d'un petit programme (ou script remplacant rm par
exemple) permettant de gérer une poubelle sous linux, afin que les
fichiers supprimés soient déplacés dans un répertoire trash à la place
d'être réellement supprimés.

Pour l'instant je n'ai trouvé que recycled4linux, mais apparemment c'est
un patch pour le noyau, et je préfèrerais un logiciel n'intervenant pas
sur le noyau (si possible).


tout depends de ce que tu cherches :
si tu veux juste pouvoir recuperer des fichiers effaces une commande
shell rm, une solution a base d'alias doit suffire

si par contre, tu veux pouvoir recuperer des fichiers effaces par un
programme compilé, il faut autre chose :

- le projet libtrash
(http://pwp.netcabo.pt/0154115101/software/libtrash/) offre une solution
simple, mais efficace

- sinon recycled4linux, modifie l'appel systeme unlink via un nouveau
module noyau. meme si le projet est en stade beta, ca marche plutot bien
(tests sur redhat, mandrake, debian), et je n'ai jamais eu de problemes.
le datage des fichiers permet de revenir plusieurs versions en arriere.