Ich habe mich nur gefragt, wie ein Windows-System mit symbolischen Links umgeht. Ich vermute, dass es sie nicht erkennt, bin mir aber nicht ganz sicher.
Was machen Macs, wenn sie mit einem konfrontiert werden?
Ich habe mich nur gefragt, wie ein Windows-System mit symbolischen Links umgeht. Ich vermute, dass es sie nicht erkennt, bin mir aber nicht ganz sicher.
Was machen Macs, wenn sie mit einem konfrontiert werden?
Antworten:
Hängt von der Windows-Version und der Konfiguration des Servers ab, wenn es sich um nicht lokale Festplatten handelt.
Seit Windows Vista hat Windows eine Vorstellung von symbolischen Verknüpfungen, die Semantik unterscheidet sich jedoch. Das wichtigere Problem sollten jedoch die Pfadnamen sein, die einer anderen Syntax folgen. Für den Anfang: Single-Root-Verzeichnisbaum auf der Unixoid-Seite und mehrere Laufwerksbuchstaben als Root auf der Windows-Seite.
Auf der unixoiden Seite sind Symlinks lediglich Textdateien mit einem speziellen Flag. Auf der Windows-Seite wird der zugrunde liegende Mechanismus als Analysepunkt bezeichnet. Dies weist den Objektmanager an, es an bestimmte registrierte Filter weiterzuleiten ( das Metadatum dafür ist in den Analysepunkten gespeichert ). Windows 2000 hat bereits eine Art von Analysepunkten eingeführt, die als Knotenpunkte bezeichnet werden (ungefähr, aber nicht ganz, Verzeichnissymlinks). Mit Vista führten sie Symlinks zu Dateien und Verzeichnissen ein, auch auf Remote-Laufwerken. Und Symlinks auf Remote-Laufwerken werden in gewissem Umfang ebenfalls unterstützt.
Der wichtigste Punkt ist, ob der Dateisystemtreiber - wenn er lokal ausgeführt wird - Anpassungen an den Pfaden vornimmt, die Windows sieht. In einem solchen Fall würde es für bestimmte lokale / relative Symlinks funktionieren. Für absolute Pfade als Ziele wird es schwierig und unmöglich, abzuleiten, was gemeint ist. Gleiches gilt für Remote-Symlinks-Links (auf "Netzwerkfreigaben").
Bezüglich der Mac-Seite habe ich keine Ahnung und es könnte als separate Frage sinnvoll sein. Aber solange der Server die Information übermittelt, dass dies ein Symlink ist, sehe ich keine Probleme, da beide der SUS-Semantik folgen (im Gegensatz zu Windows).
Betrachten Sie die Linux-Side-Mount-Punkte:
/dev/sda1 /
/dev/sda2 /home
/dev/sda3 /var
Und nun betrachten wir einen Symlink, der auf /home/paul/fstab
zeigt /etc/fstab
. Sie befinden sich auf zwei verschiedenen Volumes, die Windows - wenn Windows sie über einen Dateisystemtreiber sehen kann (was funktioniert!) - nicht so erkennen kann, dass sie so zusammengehören, wie es /etc/fstab
beschrieben wird. So würde der Link, den Windows unter einem Ordner sehen würde \paul\fstab
, auch wenn er übersetzt wäre, auf einen verweisen \etc\fstab
, auf dem es keinen gibt /dev/sda2
. Und wenn dieser Symlink auf den relativen Pfad verweisen würde, würden sich die ../../etc/fstab
Dinge überhaupt nicht ändern.
Das Wesentliche: Es ist zwar vorstellbar, dass dies für einige Eckfälle funktioniert, aber die Tatsache, dass sich Semantik und Syntax auf beiden Seiten des Zauns unterscheiden, macht es unwahrscheinlich, dass Sie eine praktische und generische Methode finden, die funktioniert.
ntfs
unterstützt Einhängepunkte (falls Ihnen diese Buchstaben nicht gefallen).
Die Antwort von 0xC0000022L ist gründlich für die Windows-Seite. Der Mac kann die Symlinks von Linux erkennen. Linux kann jedoch keine Aliase erkennen, die im Finder des Mac erstellt wurden (mit ln -s erstellte Symlinks funktionieren problemlos).
.lnk
Dateien) sind.