Comment déterminer l'emplacement d'origine du fichier qui se trouve actuellement dans la corbeille?

40

Supposons que le fichier "Any File.pdf" se trouve dans la corbeille (aka ~/.Trash).

Comment puis-je déterminer son emplacement d'origine?

Par "emplacement d'origine", j'entends le dossier dans lequel ce fichier serait déplacé si on lui appliquait la commande "Remettre en place" (mais sans le faire réellement)? (Voir la figure ci-dessous.)

(J'espérais que ces informations seraient disponibles en exécutant "Obtenir des informations" sur le fichier, mais je ne les ai pas trouvées là.)

Remettre

kjo
la source
3
Comme mentionné ici (dernier commentaire), ces informations semblent être stockées dans le fichier .DS_Store dans le dossier corbeille
iolsmit.
Voir soultion ici discussions.apple.com/thread/5767821?tstart=0 mais cela ne fonctionnera pas si le dossier qui le contient a été supprimé!
Pacerier

Réponses:

8

Les données contenant l'emplacement d'origine d'un fichier avant d'être placées dans la corbeille sont conservées dans le fichier .DS_Store du dossier ~ / .Trash .

Étant donné que la corbeille est masquée, elle ne peut normalement pas être trouvée à l'aide de l'application Finder. Le moyen le plus simple de trouver ce fichier consiste à utiliser le terminal et à entrer les commandes suivantes.

$cd ~/.Trash
$open -e .DS_Store

Cela ouvrira le fichier dans TextEdit. À partir de là, vous devriez pouvoir rechercher rapidement le fichier par son nom et son chemin d’origine.

Il semble que les fichiers de .DS_Store suivent le modèle suivant:

FILE_NAME ptbLustr ORIGINAL_PATH_TO_FILE

Les espaces de note sont ajoutés uniquement pour des raisons de lisibilité.

David
la source
2
Avez-vous réellement testé cela? .DS_Store contient beaucoup de données binaires, je n’ai trouvé aucun nom de fichier.
nohillside
1
Je l'ai testé sur ma propre machine avant de poster. J'ai trouvé des références aux fichiers de ma corbeille et à leurs emplacements d'origine.
David
1
Ah, semble dépendre des paramètres de langue, tout est Unicode ici.
nohillside
7
Je pense que cette réponse ne fonctionne que pour OS X autour de / avant 10.4 ou 10.5 car .DS_Store est maintenant un fichier binaire et non documenté par Apple .
bmike
Cela fonctionne toujours ici sous OS X 10.7.5.
Dictionarics Anonymous
1

Les informations sur l'emplacement d'origine sont stockées dans le fichier DS_Store . Dans l'ancienne version d' OS X, il était stocké en texte brut et maintenant au format binaire. Apple ne documente pas ces formats, cependant, il existe un outil créé par Wim L qui peut le lire.

L'outil est écrit en Perl, le Mac::Finder::DSStoreprojet fournit des routines pour lire et écrire les .DS_Storefichiers générés par macOS.

Selon l'engagement initial , l'outil ci-dessus est basé sur le travail de Mark Mitrovai et sur les recherches de son auteur.

L'utilisation examples/dsstore_dump.pltenterait de vider les enregistrements d'un fichier de stockage dans un format plus lisible par l'homme.

Exemple d'utilisation:

$ perl dsstore_dump.pl ~/.Trash/.DS_Store

    &makeEntries("foo.png",
        ptbL => "Users/username/Desktop/",
        ptbN => "foo.png"
    ),

Voir: dsstore repo à hhhh.org et ancien repo à GitHub .

Kenorb
la source
0

Il y a une bonne rédaction et quelques solutions plus simples sur http://ponderthebits.com/2017/01/mac-dumpster-diving-identifying-deleted-file-references-in-the-trash-ds_store-files-part- 1/

Y compris ce terminal one-liner pour convertir un .DS_Storefichier en texte (principalement):

xxd -p <path/to/.DS_Store> | sed 's/00//g' | tr -d '\n' | sed 's/\([0-9A-F]\{2\}\)/0x\1 /g' | xxd -r -p | strings | sed 's/ptb[LN]ustr//g'
Dan
la source
Plutôt que de dupliquer une réponse précédente , vous pourriez peut-être développer la commande pour renvoyer spécifiquement l'emplacement de remise en place, ce qui serait plus utile pour cette question individuellement?
grg
Je «duplique» ma propre réponse, que j'ai postée sur 3 sujets pertinents, qui ne fournissait aucune solution qui ne fonctionnait pour moi. J'essayais juste de sauver d'autres personnes l'heure de la recherche que je devais faire. Désolé si je fais mal.
Dan
Je comprends cela et vous n’avez rien fait de mal; nous avons juste pensé qu’il serait peut-être utile d’adapter celui-ci à quelque chose de plus spécifique pour la question en question. De plus, en fournissant le lien dans mon commentaire précédent, l’autre question apparaît maintenant dans la liste des questions liées située à droite, ce qui pourrait être utile aux autres.
grg
-3

"Remettre" le fichier, utilisez la fonction de recherche pour rechercher le fichier, lorsque vous trouvez votre fichier, faites un clic droit dessus et sélectionnez "Ouvrir le dossier de fermeture"


la source
2
Que se passe-t-il si le même nom de fichier apparaît plusieurs fois sur le système de fichiers? Cette approche échouera pour ce cas. Il est préférable de lire les métadonnées qu'OS X lit pour déterminer l'emplacement de «remise» en premier lieu.
Ian C.
@IanC., Mais cette option "hazytruth" semble être la seule option maintenant que dsstore est binaire
Pacerier
Fuzzytruth je veux dire ...
Pacerier