87 votes

Les fichiers/répertoires supprimés avec rm peuvent-ils être restaurés ?

Est-il possible de restaurer des fichiers/répertoires qui ont été supprimés du terminal à l'aide de la fonction rm y rm -r ?. Si un fichier est supprimé depuis l'interface graphique, il peut être restauré depuis la corbeille, mais comment restaurer un fichier s'il a été supprimé à l'aide de l'utilitaire rm ?

77voto

enzotib Points 86709

À cette fin, j'utilise trash-cli et l'alias suivant dans mon ~/.bashrc

alias rm=trash

Et le trash-cli peut être installé par la commande followoing : sudo apt-get install trash-cli .

Les fichiers que vous supprimez seront déplacés vers la corbeille, et vous pourrez les voir dans la corbeille de Nautilus.

Vous pouvez toujours accéder au véritable rm en utilisant l'une des méthodes suivantes :

command rm something
'rm' something
\rm something

Il existe également des commandes permettant d'accéder à la corbeille à partir du terminal, trash-list , restore-trash 又は trash-restore ), trash-empty installable à partir du paquet trash-cli (voir ensuite leurs pages de manuel).

Dernière remarque, il n'est pas conseillé d'utiliser un tel alias pour le super-utilisateur, car il peut interférer avec les opérations du système.

28voto

arathorn Points 8699

Le supprimer du terminal le supprime définitivement - la récupération est très difficile et parfois impossible.

Si votre type de partition est ext3 (vérifiez-le en utilisant le System->Administration->Disk Utility ), alors jetez un coup d'œil à ext3undel .

Si ce n'est pas le cas (si vous avez installé Ubuntu avec par défaut ), essayez le extundelete programme.

Il n'y a cependant aucune garantie que vous récupériez quoi que ce soit.

13voto

Andy Points 31

Vous êtes à la recherche de : supprimé - utilitaire pour récupérer les fichiers supprimés d'une partition ext3/ext4

Pour trouver un tel paquet, vous pouvez essayer : apt-cache search undelete

Pour utiliser l'utilitaire, installez-le avec : sudo apt-get install extundelete

Après l'installation, invoquez man extundelete et l'étudier attentivement.

8voto

Reuben L. Points 181

Juste comme une alternative, si vous savez spécifiquement quel type de fichier c'est...

sudo apt-get install foremost

Maintenant, ouvrez /etc/foremost.conf et vous verrez une longue liste de lignes commentées. Si votre type de fichier existe, décommentez la ligne (vous pouvez également vouloir supprimer les lignes non pertinentes).

Si votre type de fichier n'existe pas, ajoutez votre propre ligne. Disons que je veux récupérer un fichier .css et que je sais qu'il fait environ 40K. Je pourrais ajouter ceci :

css     n       40000   Theme\sName:     Plugin\sFixes

La deuxième colonne fait référence à la sensibilité à la casse, la troisième colonne fait référence à la limite supérieure de la taille, la quatrième colonne indique comment le fichier commence (n'oubliez pas d'utiliser des caractères échappés) et la dernière colonne indique comment le fichier se termine habituellement.

Utilisez la commande suivante (modifiez le disque en conséquence. Vous pourriez vérifier avec df commande)

foremost -v -T -c /etc/foremost.conf -i /dev/sda -o output

Ce qui va se passer ensuite, c'est que le plus important va créer un dossier appelé output et y déposer toutes les données récupérées (dans ce cas). De là, vous pouvez utiliser diff o meld pour comparer les "fichiers" récupérés et voir lequel est le plus à jour.

5voto

John Strood Points 294

En termes très abstraits, chaque fois que vous supprimez un fichier sur l'interface graphique, le fichier est "déplacé" vers un "tampon" spécial, un répertoire appelé trash . Vous pouvez le trouver dans votre home répertoire, ~/.local/share/Trash/ . Les fichiers "supprimés" de ce répertoire, le seront réellement. Cette suppression réelle est ce qui se passe lorsque vous utilisez la commande rm sur un fichier.

Il est extrêmement difficile de récupérer des fichiers supprimés. Les fichiers dans le système de fichiers sont représentés comme des nœuds dans un arbre B ou similaire. Lorsqu'un fichier est supprimé en utilisant rm L'arbre est mis à jour, le nombre de liens durs est réduit, l'entrée correspondante dans la liste du répertoire est supprimée. Si votre fichier avait un lien dur, votre fichier est absolument sûr. Vous pouvez faire un file / -samefile filename . Vous pouvez rechercher le fichier si vous vous souvenez aussi de son numéro d'inode (ce qui est rarement le cas).

Un autre cas est celui où aucune des possibilités ci-dessus n'est vraie. Chaque fois que vous rm un fichier, l'entrée du fichier sur le répertoire est supprimée, réduisant le nombre de liens durs d'une unité. Et si le nombre de liens durs tombe à zéro, alors le pointeur vers le fichier sur l'inode est supprimé, ou marqué pour être supprimé. Dans tous les cas, votre fichier réside "toujours" sur le disque dur. Le fichier n'est réellement effacé du disque dur que lors d'un remontage ultérieur. La récupération d'un fichier à ce moment-là est extrêmement difficile, car elle implique de passer par l'arborescence du système de fichiers et les inodes représentant les emplacements réels des blocs de disque. Il existe un outil populaire dont j'ai entendu parler, mais que je n'ai jamais utilisé, appelé extundelete . Bien qu'il n'y ait aucune garantie, cela vaut la peine d'essayer.

Une fois que vous aurez récupéré vos fichiers avec succès ou non, empressez-vous de faire des sauvegardes régulières. C'est extrêmement simple sur Ubuntu.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X