Mécanisme de corbeille (UNIX)

dorra_zen Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
phenx59 Messages postés 353 Date d'inscription   Statut Membre Dernière intervention   -

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

2 réponses

phenx59 Messages postés 353 Date d'inscription   Statut Membre Dernière intervention   174
 
en fait tu veu recréer la corbeille, c ca?
1
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Non, il veut qu'on lui fasse son devoir ! ;-(
0
phenx59 Messages postés 353 Date d'inscription   Statut Membre Dernière intervention   174
 
ah, je leverais pas le petit doigt alors
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
0