Trash-cli : une corbeille sous Linux
I. Présentation
S'il y a une chose qui est bien dommage lorsque l'on utilise couramment Linux, c'est la difficulté à retrouver et restaurer des données supprimées via la commande "rm". Comme sous Windows, lorsqu'une donnée est supprimée, elle n'est pas réellement supprimée du disque et peut peut être retrouvée via différents outils. La plupart du temps, ces outils nécessitent d'être utilisés sur une autre partition que la partition où se trouvaient les fichiers à restaurer, ce qui complique parfois la chose, surtout dans des environnements de production dans lesquels on ne peut pas décider de rebooter sur un liveCD tous les matins.
Pour pallier à ce problème de restauration des fichiers, un système de Corbeille similaire à celle de Windows peut être mise en place. C'est ce que nous allons voir dans ce tutoriel.
trash-cli est un petit outil qui peut nous sauver la mise dans bien des contextes, il va en effet nous permettre d'avoir un "filet de sauvetage" en cas de suppression de fichier, tout simplement, une corbeille. Cet outil s'utilise en ligne de commande, donc cela ne nécessite pas d'interface graphique et de bureau (dont certains embarquent déjà une corbeille, notamment dans les OS Linux client).
II. Installation de trash-cli
Dans un premier temps, il nous faut installer trash-cli, sous Debian 8, voici la commande à saisir :
apt-get install trash-cli
Cela va nous permettre d'utiliser plusieurs commandes :
- trash : met un dossier ou un fichier en corbeille
- trash-empty : permet de vider la corbeille
- trash-list : permet de lister les éléments en corbeille
- trash-rm : pour supprimer certains fichiers de la corbeille
- restore-trash : pour restaurer un fichier supprimé
Il est important de noter que chaque utilisateur aura sa propre corbeille et qu'il ne pourra bien entendu par aller fouiller dans la corbeille du voisin ! Voyons comment utiliser ces différentes commandes.
III. Utilisation courante de la corbeille Linux
Si l'on souhaite mettre un fichier dans la corbeille, rien de plus simple, il faut utiliser la commande "trash" :
trash fichier.zip
Pour supprimer un dossier, nul besoin d'utiliser une option :
trash mondossier
On peut également supprimer plusieurs fichiers et dossiers en une seule fois :
trash fichier.zip fichier2.odt dossier
La difficulté principale restera le fait que la commande "rm" fait partie des réflexes d'un administrateur systèmes et que les habitudes sont parfois dur à changer. Pour cela, il est possible de construire un alias qui fera qu'à chaque fois que la commande "rm" sera saisie, ce sera en fin de compte "trash" qui sera exécuté. Pour cela, on va aller dans le fichier .bashrc de l'utilisateur courant (exemple "/home/john/.bashrc" pour l’utilisateur "john" ou "/root/.bashrc" pour l'utilisateur "root") et on va y ajouter la ligne suivante en fin de fichier :
alias rm="trash"
Après avoir démarré une nouvelle session pour que le nouvel alias soit pris en compte, la commande "rm" deviendra donc la commande "trash". En cas de besoin, il est également possible d'effectuer un autre alias qui amènera vers le vrai "rm", pas exemple :
alias rrm="rm"
Nous avons vu comment mettre un fichier en corbeille, mais cela n'a d'utilité que si l'on sait comment récupérer un fichier ou un dossier qui s'y trouve !
Note : Lorsqu'un fichier est supprimé via "rm", son espace disque est libéré. Pour la commande "trash", ce n'est pas le cas. Le fichier prendra toujours de la place dans le système de fichier et son pointeur ne sera pas supprimé comme le fait "rm". l'utilisation de la corbeille est donc limité dans les cas où l'on souhaite libérer de l’espace disque et non pas juste "faire le ménage" dans nos répertoires.
Lister les fichiers et dossiers supprimés
Pour lister les dossiers et fichiers supprimés, et ainsi voir quelles sont nos possibilités de restauration, il faut utiliser la commande "trash-list" :
trash-list
Voici ce que nous pourrons alors voir :
On verra alors les dossiers et fichier présents dans la corbeille.
Retrouver les fichiers supprimés sous Linux
Maintenant que nous avons vu ce qui peut être restauré, il suffit de lancer la restauration des fichiers voulus avec la commande "restore-trash" :
restore-trash
Note : Une chose à savoir, c'est que la restauration d'un dossier ou d'un fichier se fait dans le répertoire dans lequel il a été supprimé. Si, comme dans ma capture d'écran précédente, le fichier à restaurer a été supprimé dans le répertoire "/root", il faut exécuter la commande "restore-trash" en étant dans le répertoire "/root". Sinon vous aurez un message "no files trashed from current dir"
Nous allons alors avoir la liste de nos fichiers précédé d'un identifiant, identifiant qu'il faudra saisir pour lancer la restauration du fichier ou dossier voulu :
Ici, je choisi par exemple "2" pour restaurer le fichier "/root/fichier.docx". Mon fichier va alors se retrouver dans le dossier "/root".
Ce qui est un peu dommage, c'est que nous n'avons pas la possibilité de restaurer une partie d'un dossier, il faut restaurer tout le dossier supprimé pour retrouver son contenu.
Si l'on souhaite vider la corbeille, il faut utiliser la commande suivante :
trash-empty
On peut également ne supprimer de la corbeille que les fichiers plus vieux que X jours, par exemple pour vider la corbeille de tous les fichiers plus vieux que 6 jours :
trash-empty 6
Nous avons fait le tour de l'utilisation de cet outil "corbeille" qui pourra nous sauver de bien des situations.
Lien utile : Github du projet trashcli
Effectivement, c’est très intéressant ! Merci pour l’article ! J’avais créé un système similaire. La commande rm était devenue, grossièrement un mv ficher /home/user/poubelle. Ça m’évitera mon bidouillage ! 😉