i-services
19/02/2004, 15h51
Salut tout le monde
Pour ceux à qui ça est déjà arrivé de supprimer des fichiers par erreur sur leur serveur, vous avez surement regreté qu'il n'y ait pas de corbeille :)
Voici un script qui vous permettra de créer une corbeille, en utilisant le commande del au lieu de rm
Etape 1 : créer un fichier /bin/del avec un chmod 755
Etape 2 : copiez y les commandes suivantes :
-----------------
#!/bin/bash
if [ -z $1 ]; then
echo 'del : Fichier ou répertoire non spécifié'
exit 1
fi
timestamp=`date '+%s'`
while [ $# -ge 1 ]; do
file=`echo $1 | sed 's/\/$//'`
if [ ! -e $file ]; then
echo "del : Fichier ou répertoire '$file' introuvable"
else
echo -n "del : Etes-vous sûr de vouloir supprimer '$file' ? [y/n] "
read confirm
if [ -z $confirm ]; then
confirm='n'
fi
if [ $confirm == 'y' ]; then
echo "Suppression du fichier ou répertoire '$file' ..."
file_name=`basename $file`
mv $file /trash/$file_name-$timestamp
fi
fi
shift
done
for i in `ls -1 /trash/` ; do
taille=`echo ${#i}`
deltime=${i:$taille-10:10}
diff=`expr $timestamp - $deltime`
if [ $diff -gt 2592000 ]; then
rm -rf /trash/$i
fi
done
exit 0
-----------------
Etape 3 : Créez un répertoire /trash :
mkdir /trash
Remarque : vous pouvez aussi créer un lien symbolique /trash qui pointe vers (par exemple) /home/corbeille
Et voila, quand vous voulez supprimer un fichier, vous faites "del fichier" ou del "fichier*" ou "del *" et il sera déplacé dans la corbeille. Cela fonctionne aussi pour les répertoire.
Remarque : ne mettez pas de paramètres à cette commande tel que "del -f".
Pour ceux à qui ça est déjà arrivé de supprimer des fichiers par erreur sur leur serveur, vous avez surement regreté qu'il n'y ait pas de corbeille :)
Voici un script qui vous permettra de créer une corbeille, en utilisant le commande del au lieu de rm
Etape 1 : créer un fichier /bin/del avec un chmod 755
Etape 2 : copiez y les commandes suivantes :
-----------------
#!/bin/bash
if [ -z $1 ]; then
echo 'del : Fichier ou répertoire non spécifié'
exit 1
fi
timestamp=`date '+%s'`
while [ $# -ge 1 ]; do
file=`echo $1 | sed 's/\/$//'`
if [ ! -e $file ]; then
echo "del : Fichier ou répertoire '$file' introuvable"
else
echo -n "del : Etes-vous sûr de vouloir supprimer '$file' ? [y/n] "
read confirm
if [ -z $confirm ]; then
confirm='n'
fi
if [ $confirm == 'y' ]; then
echo "Suppression du fichier ou répertoire '$file' ..."
file_name=`basename $file`
mv $file /trash/$file_name-$timestamp
fi
fi
shift
done
for i in `ls -1 /trash/` ; do
taille=`echo ${#i}`
deltime=${i:$taille-10:10}
diff=`expr $timestamp - $deltime`
if [ $diff -gt 2592000 ]; then
rm -rf /trash/$i
fi
done
exit 0
-----------------
Etape 3 : Créez un répertoire /trash :
mkdir /trash
Remarque : vous pouvez aussi créer un lien symbolique /trash qui pointe vers (par exemple) /home/corbeille
Et voila, quand vous voulez supprimer un fichier, vous faites "del fichier" ou del "fichier*" ou "del *" et il sera déplacé dans la corbeille. Cela fonctionne aussi pour les répertoire.
Remarque : ne mettez pas de paramètres à cette commande tel que "del -f".