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

69

Est-il possible de restaurer des fichiers / répertoires supprimés du terminal avec rmet 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 ?.

utilisateur3215
la source
pour des outils pour récupérer des fichiers supprimés (sous toute forme), vous pouvez jeter un oeil à cette question askubuntu.com/q/3883
Decio Lira
N'utilisez pas "rm" si vous souhaitez restaurer les fichiers à l'avenir .Vous pouvez utiliser l'utilitaire "rm-trash": github.com/nateshmbhat/rm-trash
Natesh bhat

Réponses:

63

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

alias rm=trash

Et le trash-clipaquet 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 Nautilus.

Vous pouvez toujours accéder au réel rmà l'aide de l'une des méthodes suivantes:

command rm something
'rm' something
\rm something

Il existe aussi des commandes pour accéder au départ du terminal trashcan, trash-list, restore-trash(ou trash-restore), trash-emptyinstallable de trash-cli paquet (puis voir 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.

enzotib
la source
19
C'est une solution de contournement, mais ne répond pas vraiment à la question.
Evgeny
Je pense que l'utilisateur voudrait également savoir s'il existe une méthode permettant d'obtenir le même comportement à partir de la ligne de commande. Sinon, je suis prêt à retirer ma réponse.
enzotib
3
C'est bon. J'ai acquis des connaissances.
user3215
27

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), jetez un œil à ext3undel .

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

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

Evgeny
la source
Ce serait vraiment utile pour les éditions de bureau.
user3215
Je doute que cela fonctionne efficacement pour les disques SSD, mais je suis heureux d'entendre le contraire
matt
13

Vous recherchez: extundelete - utilitaire pour récupérer les fichiers supprimés de la partition ext3 / ext4

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

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

Après l'installation, appelez-le man extundeleteet étudiez-le attentivement.

H.-Dirk Schmitt
la source
6

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.confet vous verrez une longue liste de lignes commentées. Si votre type de fichier existe, supprimez la mise en commentaire de la ligne (vous pouvez également 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 dfcommande)

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 diffou meldcomparer les 'fichiers' récupérés et voir lequel est le plus à jour.

Reuben L.
la source
Merci beaucoup. Cela a fonctionné parfaitement. J'ai accidentellement supprimé mon phpfichier source à l'aide rm -fr php/de 2 phpfichiers. Moins de 2 minutes, ils ont été parfaitement récupérés. Dans le .confdossier, j'ai ajouté:php n 40000 <?php ?> ASCII
Shakiba Moshiri le
5

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é trash. Vous pouvez le localiser dans votre homerépertoire ~/.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 rmun 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é en utilisant rm, 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 créez 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é extundelete. 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.

John Strood
la source
2

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.)

Stéphane
la source
Oh pas de problème!. Je pensais qu'il pourrait être récupéré de quelque endroit.
user3215
1

utilisez l' utilitaire " rm-trash " qui gère les met en corbeille pour une récupération ultérieure et supporte 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
Natesh bhat
la source