Mécanisme de corbeille (UNIX)

Fermé
dorra_zen Messages postés 9 Date d'inscription dimanche 22 novembre 2009 Statut Membre Dernière intervention 1 août 2010 - 31 mars 2010 à 21:09
phenx59 Messages postés 353 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 19 octobre 2012 - 2 avril 2010 à 09:51

bonsoir,
comment on peut réaliser un mécanisme de "corbeille" à l'aide d'un script shell.
Le principe est que ce script (appelons-le « trash ») puisse être utilisé à la place de
la commande « rm » pour effacer des fichiers tout en le conservant un certain temps, afin
de pouvoir les récupérer en cas d'erreur. On s'y prendra de la façon suivante :
- l'utilisateur aura dans son répertoire personnel un répertoire nommé « ~/.trash »
qui contient toute les informations que le script a besoin de conserver ;
- chaque fichier effacé est stocké sous un nom de la forme « ~/.trash/fileNNN » où
« NNN » est un numéro ;
- un fichier « ~/.trash/list » contient la liste des fichiers présents, c'est-à-dire qu'il
indique pour chaque fichier quel était son chemin à l'origine ;
- vous avez le droit d'ajouter d'autres fichiers dans « ~/.trash » si vous en avez besoin.
1. Créer le script « trash » et faire en sorte que la commande « trash fichier1 fichier2
... » efface les fichiers concernés en les déplaçant dans « ~/.trash » comme
expliqué plus haut. Quelques remarques :
- si « ~/.trash » n'existe pas encore, il faut le créer ;
- si l'un des noms désignés est un répertoire, c'est une erreur ;
- si un fichier de même chemin absolu a déjà été effacé une fois, le nouveau fichier
remplace le précédent.
2. Ajouter une option « -f » (pour force) telle que « trash -f » efface des fichiers sans
passer par la corbeille.
3. Ajouter une option « -q » (pour query) de sorte que « trash -q » donne la liste des
fichiers qui ont été effacés du répertoire courant.
4. Faire en sorte que « trash -q répertoire » fasse de même pour les fichiers qui viennent
d'un autre répertoire.
5. Ajouter un option « -r » (pour restore) telle que « trash -r fichier1 fichier2 ... »
permette de récupérer un fichier (et donc de l'éliminer de la corbeille). Les fichiers seront
spécifiés soit par leur chemin absolu, soit par un chemin relatif au répertoire courant.
6. Ajouter une option « -e » (pour empty) telle que « trash -e » vide la corbeille.
Et enfin, pour vérifier votre programme :
7. Écrire un script qui teste le bopn fonctionnement de votre programme.
Quelques raffinements sur lesquels je vous invite à réfléchir :
8. Ajouter une option permettant d'effacer un répertoire et son contenu.
9. Ajouter un réglage permettant de limiter l'espace utilisé par la corbeille : dès que l'espace
occupé par la corbeille dépasse une certaine limite, il s'agira d'effacer les fichiers les plus
anciens de la corbeille jusqu'à repasser en dessous de la limite
merciii
A voir également:

2 réponses

phenx59 Messages postés 353 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 19 octobre 2012 174
1 avril 2010 à 17:28
en fait tu veu recréer la corbeille, c ca?
1
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
1 avril 2010 à 17:49
Non, il veut qu'on lui fasse son devoir ! ;-(
0
phenx59 Messages postés 353 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 19 octobre 2012 174
2 avril 2010 à 09:51
ah, je leverais pas le petit doigt alors
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
31 mars 2010 à 22:29
0