Wie kann ich den Dateispeicherort verfolgen?

Wie kann ich den Dateispeicherort verfolgen?

Ich möchte die Pfade bestimmter Ordner in meinem System so einfach und effizient wie möglich verfolgen. Meine erste Annahme war, dass ich dies mithilfe von Symlinks erreichen könnte, aber ich sehe widersprüchliche Informationen darüber, wie ein Symlink funktioniert.

Viele Fragen wurden gestellt, wie manHolen Sie sich den Pfad zu einem Symlink-Ziel(mit Antworten wie "benutzen greadlink"). Ich kann aber keine Frage finden, wie man dieaktuellZielpfad, da alle Antworten, die ich gefunden habe, nur dieOriginalZielpfad.

Aber wenn ich nach einer Möglichkeit suche, den aktuellen Zielpfad zu finden, scheinen alle Antworten zu sagen, dass dies nicht möglich ist, da der Symlink nach dem Verschieben des Ziels „kaputt“ wird. Ich verstehe nicht, warum sie diesen Link als kaputt betrachten. Wenn ich den Symlink B zum Ziel A erstelle und dann A an einen neuen Ort verschiebe, funktioniert der Symlink B immer noch für mich. Er zeigt immer noch den aktualisierten Inhalt von A an, selbst wenn Änderungen an A vorgenommen werden, nachdem A verschoben wurde. Und im Pfadfinder bringt mich die Auswahl von „Original anzeigen“ im Kontextmenü für B zumAktualisiertPfad von A. Und doch zeigt „Greadlink B“ nur auf den ursprünglichen Standort von A und nicht auf den aktuellen.

Obwohl ich Symlinks ausdrücklich erwähnt habe, ist meine umfassendere und wichtigere Frage, wie man den Speicherort einer Datei erhält, nachdem sie verschoben wurde. Die beste Lösung, die ich bisher gefunden habe, ist, findauf irgendeine Weise zu verwenden, aber das ist viel zu langsam, wenn ich versuche, mehr als ein paar Dateien zu verfolgen. Aber Symlinks in Path Finder scheinen Zielspeicherorte effektiv zu verfolgen, also weiß ich, dass es möglich sein muss.

Antwort1

Danke @grawity, dass du mich an Aliase erinnerst. Ich habe versucht, einen Alias ​​anstelle eines Symlinks zu verwenden, um den Speicherort einer Datei zu verfolgen. Es stellt sich heraus, dass ich das folgende Skript verwenden kann, das dieaktuellPfad zum Ziel, auch nachdem sich das Ziel bewegt hat.

ResolveAlias.applescript

#!/usr/bin/osascript
on run argv
    tell application "Finder"
        set theItem to (POSIX file (item 1 of argv)) as alias
        if the kind of theItem is "alias" then
            get the POSIX path of (original item of theItem as text)
        end if
    end tell
end run

Aufgerufen mitosascript "/path/to/ResolveAlias.applescript" "/path/to/alias"

verwandte Informationen