Erkennt Windows die symbolischen Links von Linux?

14

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?

JamesTheAwesomeDude
quelle
1
Wie wollen Sie Windows einer symbolischen Verknüpfung aussetzen? Es versteht keine Dateisysteme, die diese unterstützen (außer NTFS, das nicht ganz anders ist als symbolische Links, die meistens vor der Benutzeroberfläche verborgen sind).
Gilles 'SO- hör auf, böse zu sein'
Was passiert also, wenn Sie Ihre Windows-Partition gemountet haben und versuchen, einen symbolischen Link darin zu platzieren? Funktioniert es einfach so, als wäre es ein Ordner? (Wenn ja, frage ich mich, was passiert mit RECURSION ...)
JamesTheAwesomeDude
können Sie mir bitte dabei helfen: stackoverflow.com/questions/21403772/…
Goofy

Antworten:

10

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/fstabzeigt /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/fstabbeschrieben 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/fstabDinge ü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.

0xC0000022L
quelle
2
Wow, das war eine sehr detaillierte, gründliche Antwort! Vielen Dank für die Bereitstellung all dieser Informationen! Ich hatte eigentlich keine Ahnung, dass die Symlinks von Linux textbasiert waren. Nochmals vielen Dank für alle nützlichen Informationen hier.
JamesTheAwesomeDude
können Sie mir bitte dabei helfen: stackoverflow.com/questions/21403772/…
Goofy
Ich glaube, ich habe einen Sym-Link für XP erstellt. Bist du sicher, dass Vista der erste war?
Strg-Alt-Delor
ntfsunterstützt Einhängepunkte (falls Ihnen diese Buchstaben nicht gefallen).
Strg-Alt-Delor
@ Richard: in der Tat Volumenbereitstellungspunkte sind der Fachbegriff für das, was Sie sehen , wie die Laufwerksbuchstaben in dem Win32 - Subsystem. Sie haben jedoch Recht, da ein Volume-Bereitstellungspunkt auch für einen vorhandenen Ordner festgelegt werden kann (der Knotenpunkten sehr ähnlich ist). Die technische Funktion zum Implementieren von Volume-Mount-Punkten, Junction-Punkten und symbolischen Links wird als Analysepunkt bezeichnet . Und ja, Vista war das erste Unternehmen, das symbolische Links unterstützte. Unter XP hätte man es nur in einem anderen Subsystem (zB POSIX) machen können, das jedoch eine andere Semantik hat, wie oben.
0xC0000022L
2

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).

Wer weiß
quelle
Klingt so, als ob Aliase das OSX-Gegenstück zu Verknüpfungen unter Windows ( .lnkDateien) sind.
0xC0000022L