web-dev-qa-db-fra.com

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

Est-il possible de restaurer des fichiers/répertoires supprimés du terminal en utilisant rm et rm -r ?. Si un fichier est supprimé de l'interface graphique, il peut être restauré à partir de la corbeille, mais comment restaurer un fichier s'il est supprimé à l'aide de l'utilitaire rm ?.

68
user3215

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

alias rm=trash

Et le package trash-cli peut être installé à l'aide de la commande suivante: 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 Nautilus.

Vous pouvez toujours accéder au nom réel rmen utilisant l'une des méthodes suivantes:

command rm something
'rm' something
\rm something

Il existe également des commandes pour accéder à la corbeille à partir du terminal, trash-list, restore-trash (ou trash-restore), trash-empty installable à partir du paquet trash-cli (puis consultez leurs pages de manuel).

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

64
enzotib

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), puis jetez un oeil à ext3undel .

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

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

27
evgeny

Vous recherchez: extundelete - pour récupérer les fichiers supprimés de la 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, appelez man extundelete et étudiez-le attentivement.

13
H.-Dirk Schmitt

Juste comme alternative, si vous savez précisément de quel type de fichier il s’agit ...

Sudo apt-get install foremost

Ouvrez maintenant /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. Dites que je veux récupérer un fichier .css et que je connais ses 40K environ. Je pourrais faire ajouter ceci:

css     n       40000   Theme\sName:     Plugin\sFixes

La 2ème colonne fait référence à la casse, la troisième colonne à la limite supérieure de taille, la 4ème colonne indique le début du fichier (n'oubliez pas d'utiliser des caractères d'échappement) et la dernière colonne indique comment le fichier se termine habituellement.

Utilisez la commande suivante (éditez le disque en conséquence. Pourrait vérifier avec la commande df)

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

Ce qui va se passer ensuite, c'est avant tout créer un dossier appelé sortie et vider toutes les données récupérées (dans ce cas) dans le dossier. À partir de là, vous pouvez utiliser diff ou meld pour comparer les 'fichiers' récupérés et voir quels sont les fichiers les plus à jour.

6
Reuben L.

En termes plus 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é trashname__. Vous pouvez le localiser dans votre répertoire homename__, ~/.local/share/Trash/. Les fichiers "supprimés" de ce répertoire seront réellement supprimés. Cette suppression réelle correspond à ce qui se produit lorsque vous utilisez rmsur un fichier.

Il est extrêmement difficile de récupérer des fichiers supprimés. Les fichiers du système de fichiers sont représentés sous forme de nœuds dans un arbre B ou similaire. Lorsqu'un fichier est supprimé à l'aide de rmname__, l'arborescence est mise à jour, le nombre de liens physiques est réduit, l'entrée correspondante dans la liste des répertoires est supprimée. Si du tout, votre fichier avait un lien en 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 n'est pas le cas).

Un autre cas se présente lorsqu'aucune des possibilités ci-dessus n'est vraie. Chaque fois que vous rmun fichier, l'entrée de fichier du répertoire est supprimée, ce qui réduit le nombre de liens physiques de un. Et si le nombre de liens physiques tombe à zéro, le pointeur sur le fichier sur l'inode est supprimé ou est marqué pour être supprimé. Dans les deux cas, votre fichier "immobile" se trouve sur le disque dur. Le fichier n’est effacé du disque dur que lors d’un remontage ultérieur. La récupération de fichiers à un tel moment est extrêmement difficile et implique de passer par l’arborescence du système de fichiers et les inodes représentant les emplacements réels des blocs de disque. J'ai entendu parler d'un outil populaire, mais je ne l'ai jamais utilisé, appelé extundeletename__. Bien qu'il n'y ait aucune garantie, cela vaut la peine d'essayer.

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

5
John Strood

Désolé, mais les fichiers supprimés d'une ligne de commande avec "rm" et "rm -f" contournent la "Corbeille" que vous avez sur le bureau de Gnome.

Vous voudrez peut-être aussi demander s'il existe des outils "non supprimés" d'extfs, comme il en existe pour FAT et NTFS. (Je n'en connais pas, mais je serais surpris s'il n'y en avait pas.)

2
Stéphane

utilisez l'utilitaire "rm-trash" qui les traite les met à la corbeille pour une récupération ultérieure et prend en charge toutes les options de la commande "rm".

Sudo add-apt-repository ppa:nateshmbhat/rm-trash
Sudo apt-get update
Sudo apt-get install rm-trash

"rm-trash" est

  • destiné à être utilisé à la place de la rm
  • gère toutes les options que rm peut prendre
  • gère les collisions de noms de fichiers avec les fichiers déjà dans la corbeille
  • gère automatiquement certains problèmes de permission
  • si rm est appelé depuis n'importe quel autre script ou indirectement, la commande système 'rm' est utilisée automatiquement
  • affiche les messages d'erreur appropriés, comme ceux qui apparaissent dans rm
1
Natesh bhat