J'ai eu un petit problème lors de l'exécution d'un script : ce script lit un fichier de configuration sur $HOME
, et il avait ~/Downloads
à l'intérieur.
Au lieu de sauvegarder un fichier à l'intérieur de ~/Downloads
lorsque j'ai exécuté le script, puisque je l'ai exécuté à l'intérieur de ~/Library
, il a créé ~/Library/~/Downloads
.
À l'intérieur de ~/Library
, j'ai fait rm -rf ~
. Après 1-2s, j'ai réalisé mon erreur et ai arrêté en utilisant ˆ-C
- cela supprimait mon $HOME
.
Je sais que certains fichiers ont été supprimés, mais je ne sais pas lesquels. Certains fichiers cachés (bash_functions, bash_aliases) ont été supprimés et j'avais une sauvegarde, mais certains fichiers sur $HOME
ne sont pas sauvegardés.
J'ai fait une vérification rapide de mes fichiers (en regardant les dates de modification du dossier sur $HOME
), cela semblait correct, mais je sais que je ne peux pas faire confiance à mes yeux en utilisant cette approche.
Je sais que si je change un fichier à l'intérieur d'un dossier, Mac changera le drapeau "modifié" pour ce dossier, mais seulement si un enfant direct de ce dossier a été modifié. Exemple :
~/Downloads
- file.txt
/Mp3
- music.mp3
Donc, si vous modifiez file.txt
, ~/Downloads
aura son drapeau modifié, mais si vous modifiez music.mp3
, ~/Downloads
n'aura pas son drapeau modifié.
Donc voici le problème : je ne sais pas comment rm -rf
commence à supprimer mes fichiers. Est-ce séquentiel ? Est-ce dans un ordre arbitraire ? Est-ce que ça a commencé à supprimer ~/Pictures/Wedding
et est soudainement allé à ~/Videos
? Je ne sais pas. Je crois qu'il ne supprime pas séquentiellement, donc maintenant je peux avoir un répertoire vraiment profond sans fichiers importants après mon erreur de rm -rf
.
Y a-t-il un endroit sur le Mac où tous les fichiers supprimés avec rm -rf
sont conservés (juste les noms de fichiers) ? Je n'ai rien trouvé de tel, donc j'ai fait
find ~ -type d -mtime -1 > modified_folders.txt
sur mon terminal puisque j'ai fait la mauvaise rm -rf
aujourd'hui. Le résultat de la commande find
, les dossiers modifiés (si vous supprimez un fichier, Mac change le drapeau modifié de son dossier parent direct) semble ne pas avoir une structure "arbitraire profonde" comme ~/Pictures/Personal/Birthday/2010/Cake
... puis-je alors supposer que rm -rf
n'a pas touché les mauvais fichiers et que j'ai pu arrêter l'armageddon juste en arrêtant rm -rf ~
après 1-2s (donc il a juste supprimé quelques fichiers cachés sur $HOME
) ?
(J'ai déjà redémarré ma machine, elle fonctionne bien. Je suis sur Snow Leopard, donc tmutil n'est pas une solution je pense...)
(Je connais déjà quelques solutions de récupération comme TestDisk existent, mais j'essaie de l'utiliser comme dernière approche (si je me trompe dans mes suppositions sur le snippet find
).