Pages : 1
#1 Le 12/12/2010, à 09:55
- SonOfGod7
corbeille linux
Bonjour je veux creer un script qui va archiveer tous les fichiers et dossiers que que je vais supprimer, à l'aide d'une commande que je nomme erase par exemple.
je pense que la commande mv fic
/home/monNom/corbeille
pourra faire l'affaire.
Mais
Après une analyse et un peu de recherche sur le web je me suis poser des questions.
- Es ce que la fonction mv entrainera la modification de la date de modification du fichier dans la corveille ( pour faciliter les recherches selon la date )
- Comment garder le chemin où était le fichier ?
- Comment restaurer ?
merci
Hors ligne
#2 Le 12/12/2010, à 10:26
- wido
Re : corbeille linux
Bonjour,
l'idée que je te propose est de recréer l'arborescence du système ( de la racine jusqu'au fichier) en utilisant par exemple:
fichier="$1"
racine="/home/monNom/corbeille"
mv "$fichier" "$racine/$fichier"
echo "le $fichier a été déplacé en $racine/$fichier"
pour la date, je ne sais pas.
Hors ligne
#3 Le 12/12/2010, à 16:20
- SonOfGod7
Re : corbeille linux
Merci, pour ta solution en tout cas elle fera le ce qui est à faire en tout cas.
Tu conviens avec moi que c'est un peu lourd à la longue.
Moi j'aurai voulu un truc plus classe
Par exemple une autre idée est de sauvegarder le fichier et son arborescence complète style.
si je veu supprimer le fichier password dans etc .
Je vais le deplacer dans le dossier /home/monNom/corbeille avec comme nom _etc_password.
J'ai subsituer "/" par "_" pour respecter la nomenclature des fichiers.
Voila en quelque sorte mon idée, mais j'aimerai savoir si l'on peut faire mieux.
Pour mv après avoir effectuer plusieurs test je me suis rendu compte qu'il conserve la date de modification.
Alors que cp la modifie vraiment,
voila un debut
#!/bin/bash
if [ -e $1 ] && [ -n $1 ]
then
c="echo $1 | cut -c 1"
fil="$1"
if [ $c != "/" ]
then
fil="`pwd`_$1"
fi
fil=$(cat $fil | tr "/" "_" )
echo $fil
cp `echo $1` ~/trash/$fil
rm -rf $1
fi
on me met l'erreur
del: ligne 8 : [: trop d'arguments
Malgrés cette erreur, il deplace le fichier que je supprime dans le dossier trash mais le fichier garde le même nom (son basename ) au lieu de _home_login_Document_fichier
Dernière modification par SonOfGod7 (Le 12/12/2010, à 18:10)
Hors ligne
#4 Le 12/12/2010, à 18:31
- SonOfGod7
Re : corbeille linux
C'est bon j'ai pu faire le script je le met en ligne,
j'attend vos améliorations
#!/bin/bash
if [ -e $1 ] && [ -n $1 ]
then
c=`echo $1 | cut -c 1`
echo $c
fil="$1"
if [ $c != "/" ]
then
fil=`pwd`_$1
fi
fil=$(echo $fil | tr "/" "_" )
echo "inouss $fil"
cp `echo $1` ~/trash/$fil
rm -rf $1
fi
Amelioration à apporter : il pourrait supprimer de maniere recursif (pour les dossiers).
J'attend vos commentaires et vos ameliorations
Et aussi faire une fonction de restauration des fichiers, je la ferai dès que possible.
Si quelqu'un peut la faire entre temps ce sera cool.
Je penses que ce sont des scripts très utile.
Dernière modification par SonOfGod7 (Le 12/12/2010, à 18:32)
Hors ligne
#5 Le 12/12/2010, à 18:52
- chopinhauer
Re : corbeille linux
Il a des spécifications sur le site de Freedesktop sur comment fonctionne la poubelle dans un système libre.
En résumé elle se trouve dans $XDG_DATA_HOME/Trash qui normalement est ~/.local/share/Trash et contient deux sous-répertoires : files pour y mettre les fichiers effacés et info pour sauvegarder le chemin original du fichier et sa date de effacement (le mtime n'est pas changé quand on bouge un fichier).
Beaucoup d'outils implémentent cette spécification, par exemple gvfs-trash du paquet gvfs-bin.
PS : Dans ton script t'aura beaucoup de problèmes avec les espaces (pas assez de quoting), tu dois mettre les noms des fichiers entre guillemets anglais " pour qu'il ne soient pas considérés deux noms. L'expression `echo $1` est bien plus longue que "$1" et cp n'est pas récursif, donc t'aura un problème avec le répertoires.
Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.
Hors ligne
#6 Le 12/12/2010, à 19:18
- kyncani
Re : corbeille linux
J'ai fait une petite recherche pour voir si ça existais déjà, c'est le cas http://packages.ubuntu.com/maverick/trash-cli http://code.google.com/p/trash-cli/
Hors ligne
#7 Le 12/12/2010, à 20:06
- SonOfGod7
Re : corbeille linux
loool j'aurai quand même essayé,
Je me doutais qu'il devait exister un truc comme ça, mais puisque j'avais pas trouvé, je me suis resolu à le developper moi même.
En tout cas merci, je pense que j'utiliserai ces paquet deja fait.
Hors ligne
Pages : 1