15/11/2024

Commandes et Système

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 :

trash-linux-01
Liste des fichiers et dossiers en corbeille

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 :

trash-linux-02
Fichiers et dossiers pouvant être restaurés

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

author avatar
Mickael Dorigny Co-founder
Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

1 commentaire sur “Trash-cli : une corbeille sous Linux

  • 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 ! 😉

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.