Was ist der Unterschied zwischen Alias ​​und Link?

24

Ich sehe, dass der Alias ​​167,7 KB groß ist, während der symbolische Link nur 4 KB groß ist.

  • Was ist der Unterschied zwischen den beiden, oder was ist der Zweck von ihnen?
  • Welches ist vorzuziehen? Für den Fall, dass der Link / Alias ​​nur auf einem Computer oder im Netzwerk verwendet wird.

HINZUGEFÜGT

http://prosseek.blogspot.com/2012/12/symbolic-link-and-alias-in-mac.html

Prosseek
quelle

Antworten:

26

Ein Alias ​​enthält zwei Informationen: einen eindeutigen Bezeichner der Datei, mit der er verknüpft ist, und den Pfad und den Dateinamen der Datei, mit der er verknüpft ist.

Wenn Sie eine Datei umbenennen oder verschieben und dann eine neue Datei mit dem Pfad und dem Dateinamen erstellen, über den die Datei ursprünglich verfügte, wird ein Alias, der mit der ursprünglichen Datei verknüpft war, jetzt mit der neuen Datei verknüpft.

Wenn Sie jedoch eine Datei umbenennen oder verschieben, ohne sie zu ersetzen, und anschließend einen Alias ​​aufrufen, wird der Alias ​​so aktualisiert, dass er auf den neuen Pfad und Dateinamen verweist, wobei der eindeutige Bezeichner verwendet wird.

Ein symbolischer Link enthält andererseits keine eindeutige Kennung für eine Datei und wird als fehlerhaft angezeigt, wenn die Datei umbenannt oder verschoben und nicht durch eine Datei mit demselben Pfad und Dateinamen ersetzt wird.

Ihre Wahl sollte davon abhängen, welches Szenario am besten zu Ihnen passt.

Wächter
quelle
11
Ein weiterer Unterschied besteht darin, dass Befehlszeilentools (dh alles, was Posix-Datei-APIs verwendet) keine Aliase, sondern nur Symlinks verstehen. Beide funktionieren für GUI-Anwendungen.
Gordon Davisson
Beim Posten in diesem Beitrag ( apple.stackexchange.com/questions/2992/… ) stellte ich fest, dass die Automator-Aktion nicht mit Link, sondern mit Alias ​​funktioniert.
Prosseek
@sentinal du solltest auch hinzufügen, was harte Links sind
user151019
1
Insbesondere indiziert Spotlight keinen Symlink. Es wird ein Alias ​​indiziert (wenn auch auf einem niedrigeren Rang.)
ocodo
2

Ich bin ziemlich verwirrt von Sentinels Antwort auf create a new file with the path and filename that the file originally had. Es ist auch plötzlich, warum willst du das tun?

Wenn Sie verstehen, warum und wie Alias ​​bei der Verwendung von UID und Pfad zur Datei funktioniert (während Symlink nur für den Pfad funktioniert), können Sie den Unterschied und die hoch bewertete Antwort leichter verstehen.

Auf HFS- und HFS + -Dateisystemen hat jede Datei und jeder Ordner eine eindeutige, dauerhafte Kennung. Aliase verwenden diese Identität zusammen mit Pfadnameninformationen, um Dateien und Ordner auf demselben Volume zu finden.

Ab Mac OS X 10.2 haben Aliase diese Suchreihenfolge umgekehrt , indem sie zuerst den Pfadnamen und dann die eindeutige Identität verwendet haben. Dies bedeutet, dass, wenn Sie eine Datei verschieben und durch eine Datei mit demselben Namen ersetzen, Aliase auf die ursprüngliche Datei jetzt auf die neue Datei verweisen. Wenn Sie eine Datei auf dasselbe Volume verschieben (ohne sie zu ersetzen), verwenden Aliase die eindeutigen Identitätsinformationen, um die Datei zu lokalisieren .

Wenn eine Datei oder ein Ordner verschoben wird, aktualisiert der Alias ​​möglicherweise entweder die Pfadinformationen oder die eindeutigen Identitätsinformationen, um die Änderung zu berücksichtigen. Wenn sich eine Datei auf demselben Volume befindet, aktualisiert der Alias ​​den internen Datensatz mit den neuen Pfadinformationen für die Datei. In ähnlicher Weise , wenn die ursprüngliche Datei durch eine Datei mit dem gleichen Namen ersetzt wird, aber eine andere eindeutige Identität, die Alias aktualisiert seine interne Aufzeichnung mit der einzigartigen Identität der neuen Datei. (Ergebnis von create a new file with the path and filename that the file originally had)

Da Aliase zunächst einen Dateisystempfad verwenden, um einen Dateispeicherort aufzulösen, verhalten sie sich jetzt ähnlich wie symbolische Links. Symbolische Links basieren ausschließlich auf Pfadinformationen zum Auffinden einer Datei. Wenn Sie eine Datei an einen anderen Ort auf demselben Datenträger verschieben, ohne sie zu ersetzen, werden symbolische Verknüpfungen mit der Datei unterbrochen, Aliase dagegen nicht. Die einzige Möglichkeit, einen symbolischen Link zu reparieren, besteht darin, ihn zu löschen und einen neuen zu erstellen.

Referenz

Izana
quelle
1
Dies scheint ein Kommentar zu einer Antwort zu sein und kein Versuch, die Frage des OP zu beantworten. Können Sie bitte erklären, wie Ihr Beitrag die ursprüngliche Frage beantwortet? Siehe wie man Antwort zur Orientierung auf gute Antworten zu schreiben. - Aus der Bewertung
fsb
Ich beantwortete die Frage von OP, indem ich erklärte, wie die Suche nach Alias ​​auf einem Mac funktioniert, dh wie der Pfad zur Datei und die UID bei einer Suche verwendet werden. Die hoch gewählte Antwort hat den Unterschied beantwortet, aber nicht beantwortet, warum der Unterschied erzeugt wird.
Izana