1. Gérer une corbeille

1.1. Description

Les environnements graphiques proposent une corbeille : lorsqu'un fichier est supprimé, il est en fait déplacé dans un répertoire (caché). Il est alors possible de restaurer le fichier pour le remettre à son emplacement original...

1.2. Objectif

L'objectif de se mini projet est de créer quelques fonctions shell pour utiliser une corbeille.

1.3. Précisions

Votre script devra offrir les fonctionnalités suivantes :

Voici un exemple d'utilisation :

$ pwd
/home/pierre/test
$ ls
fichier1  fichier2  fichier3
$ RM fichier2
  'fichier2' a été déplacé dans la corbeille
$ rm fichier3
$ ls
fichier1
$ TRASH
  La corbeille contient
    - /home/pierre/test/fichier2
$ RESTORE /home/pierre/test/fichier2
  'fichier2' a été restauré dans le répertoire /home/pierre/test
$ ls
fichier1  fichier2
$ TRASH
  La corbeille est vide.

Il est nécéssaire de conserver le chemin d'accès d'origine des fichiers déplacés. Pour ceci, lorsqu'un fichier fichier1 est déplacé dans la corbeille, on créé un nouveau fichier fichier1.info contenant le chemin d'accès d'origine.

  1. Utilisez une variable CORBEILLE contenant le chemin vers le répertoire (caché) ~/.corbeille. (N'oubliez pas de créer le répertoire !)

  2. La fonction RM devra déplacer le fichier dans le répertoire $CORBEILLE, et stocker le chemin d'accès dans le fichier FICHIER.info correspondant. Vous aurez pour ceci besoin des fonctions basename et realpath

  3. La fonction TRASH devra faire une boucle sur les fichiers FICHIER.info de la corbeille et afficher leur contenu.

  4. La fonction RESTORE devra retrouver le fichier FICHIER.info correspondant au chemin donné en argument.

    Pour ceci, le plus simple est d'utiliser la commande grep -xl qui permet d'afficher les noms des fichiers qui contiennent une ligne spécifique.

    Une fois le nom du fichier FICHIER.info récupéré dans une variable INFO_FILE, il est possible de supprimer son extension avec l'incantation ${INFO_FILE%.info} : cela donnera le nom du fichier à redéplacer dans son répertoire d'origine.

    N'oubliez pas de supprimer le fichier FICHIER.info de la corbeille !

1.4. Pour aller plus loin