Was ist der Unterschied zwischen einem symbolischen Link und einer Verknüpfung?
windows
shortcuts
symbolic-link
deepthi tm
quelle
quelle
Antworten:
Ich denke, der wichtige Punkt ist, dass Verknüpfungen nur eine Datei sind. Sie haben eine Größe (eine kleine, die nur auf die Stelle verweist, auf die sie verweisen) und benötigen eine Anwendung, die diesen Dateityp unterstützt, um verwendet zu werden.
Eine symbolische Verknüpfung befindet sich auf Dateisystemebene und wird von allen als Originaldatei angesehen. Eine Anwendung benötigt keine spezielle Unterstützung, um einen symbolischen Link zu verwenden.
quelle
find
,tar
,du
etc) Sie müssen über symbolische Links wissen , oder sie können einige sehr dumme Dinge tun. Zum Beispiel kann das Blenden nach symbolischen Links Zyklen im Dateisystem erzeugen, und das ist schlecht .Ein "symbolischer Link" kann in funktionaler Weise als Ersatz für ein Verzeichnis oder eine Datei fungieren und wird häufig in Unix / Linux-Umgebungen verwendet. Obwohl dies anscheinend in Windows unterstützt wird, habe ich noch keine tatsächliche Verwendung davon gesehen.
Eine "Verknüpfung" ist nur eine reguläre Datei, die einen Verweis auf die Zieldatei oder das Zielverzeichnis enthält, zusammen mit einigen anderen Dingen wie dem anzuzeigenden Symbol. Anders als bei einem symbolischen Link können Sie unter DOS nicht "cd ./shortcut-name" verwenden (unter Unix / Linux können Sie "cd ./symlink-name" verwenden, und dies funktioniert genau wie ein echtes Unterverzeichnis).
Wenn Sie in den meisten Windows-Anwendungen in einem der Dialogfelder Datei-> GUI öffnen auf eine Verknüpfung klicken, wird das Feld Dateiname mit dem Dateinamen dieser Verknüpfung sowie mit dem Namen eines Unterverzeichnisses gefüllt, während die grafische Benutzeroberfläche in Unix / Linux behandelt wird ein symbolischer Link als Pfad (ohne das Dateinamenfeld zu ändern).
quelle
Wie bereits erwähnt, ist eine symbolische Verknüpfung eine der auf Dateisystemebene verfügbaren Verknüpfungsarten, die sie für Anwendungen transparent macht. Ich habe diese Dokumentation als sehr hilfreich empfunden (insbesondere den Abschnitt "Beschneiden / Abrollen / Äußere Verbindungsstellen verbinden / Symbolische Links"). Und das Tool dort sieht auch gut aus. (Wenn Sie dies und mklink erwähnen, werden hoffentlich mehr Suchanfragen diese Diskussion finden.)
Eine Verknüpfung ist eine Datei, keine echte Verknüpfung, und wird im Allgemeinen nur dann erfolgreich als Verknüpfung verwendet, wenn sie von der Windows-Benutzeroberfläche (Benutzeroberfläche) interpretiert wird. Wenn Sie beispielsweise auf eine Ordnerverknüpfung doppelklicken, werden Sie von Windows an diesen anderen Speicherort umgeleitet. (Dies schließt die allgemeinen Dialogfelder zum Öffnen und Speichern von Dateien ein, die von den meisten Anwendungen aufgerufen werden.) Auf meinem Desktop habe ich eine Verknüpfung zu diesem Ordner: C: \ ProgramData \ Microsoft \ Windows \ Startmenü \ Programme \ G
Der Shorcut-Dateiname lautet: C: \ Users \ user5 \ Desktop \ Games.lnk, obwohl Windows die Erweiterung .lnk unterdrückt und nur "Games" anzeigt, selbst wenn Sie "Erweiterungen für bekannte Dateitypen ausblenden" deaktivieren. Wenn Sie jedoch eine Eingabeaufforderung öffnen und ein Verzeichnis erstellen, wird Folgendes angezeigt:
Ich kann das Äquivalent mit einem Symlink erstellen, indem ich die Option \ D (für Verzeichnis) verwende:
(Eine Verzeichnisverknüpfung (\ J) ist ebenfalls eine Option, da dies eine Ordnerverknüpfung ist.) Mit Windows Explorer können Sie, genau wie mit dieser Konsole und den meisten Anwendungen, "nach unten" in dieses scheinbare Unterverzeichnis navigieren, anstatt (a) umzuleiten "across" zu einem anderen Ort oder (b) fehlgeschlagen.
Verknüpfungen verhalten sich nicht wie Unterverzeichnisse. Mit diesem Befehl kann ich das Standardverhalten der Windows-Benutzeroberfläche aufrufen (dies öffnet den Ordner "G" im Windows-Explorer):
Während mysymlink als echtes Unterverzeichnis aufgeführt ist (siehe Anzahl) und nicht auf diese Weise gestartet werden kann:
Umgekehrt können Sie das Verzeichnis nicht in eine Verknüpfung ändern:
In der Windows-Benutzeroberfläche können Sie mit der rechten Maustaste klicken, um die Eigenschaften einer Verknüpfung zu bearbeiten. Das Folgende zeigt genau, was tatsächlich in der .lnk-Datei (Binärdaten) gespeichert ist, obwohl ein Hex-Editor dies besser darstellen würde:
Beim Versuch, Notepad für einen aktuellen Unterordner auszuführen, wird die Fehlermeldung "Zugriff verweigert" und ein leerer Notepad angezeigt.
Umgekehrt kann ich einen Dateisymlink (kein Ordnersymlink) mit Notepad starten. Von den folgenden Aufrufen von "notepad.exe" funktionieren die ersten beiden und die dritte schlägt fehl (sie öffnet die .LNK-Datei, das binäre Gobbledegook).
Dies ist nicht nur eine Konsolensache. Wenn Sie eine Verknüpfung zu Notepad auf meinen Desktop kopieren und versuchen, jede der drei Verknüpfungen per Drag & Drop darauf abzulegen, zeigt sich genau dasselbe Verhalten. (Da die Anwendung im Gegensatz zum Doppelklick die Verknüpfung durch Ziehen und Ablegen interpretieren kann.)
In Bezug auf die Unterschiede zwischen Verzeichnissymlinks und Junctions finden Sie in dieser Diskussion eine sehr hilfreiche Beschreibung :
"Ein wesentlicher Unterschied in der Art und Weise, wie Windows symbolische Verknüpfungen und Verzeichnisverbindungen auflöst, besteht darin, wo die Verarbeitung stattfindet. Windows verarbeitet symbolische Verknüpfungen auf dem lokalen System, auch wenn sie auf einen Speicherort auf einem Remote-Dateiserver verweisen. Windows verarbeitet Verzeichnisverbindungen, die auf eine Remote verweisen Dateiserver auf dem Server selbst. Symbolische Verknüpfungen auf einem Server können sich daher auf Speicherorte beziehen, auf die nur von einem Client aus zugegriffen werden kann, wie auf anderen Client-Volumes, wohingegen Verzeichnisverknüpfungen dies nicht können. Um dies zu beheben, unterstützt Windows Vista den neuen symbolischen Verknüpfungstyp für beide Dateien und Verzeichnisse.
"Viele Dateisystembefehle wurden aktualisiert, um die Auswirkungen symbolischer Verknüpfungen zu verstehen. Der Befehl" Löschen "folgt beispielsweise nicht den Verknüpfungen, was zum Löschen des Ziels führen würde, sondern löscht stattdessen die Verknüpfung. Allerdings sind nicht alle Anwendungen betroffen Wenn Sie eine symbolische Verknüpfung erstellen möchten, benötigen Sie die neue Berechtigung "Symbolische Verknüpfung erstellen", über die standardmäßig nur Administratoren verfügen. "
quelle
Quelle: http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html
quelle
Manchmal ist es gut, ein Funktionsbeispiel zu haben, also erkläre schlecht, wie ich diese Funktion benutze.
Ich verwende Google Drive, um Dateien zu sichern, aber manchmal möchte ich Dateien in einem bestimmten Ordner sichern (ich kann sie nicht auf ../google drive verschieben). Besonders mit Windows 10 Universal Apps werden Konfigurationsdateien und ähnliches in appdata gespeichert und die meiste Zeit kann ich diesen Ort nicht ändern.
Ich verwende die native Windows-Stikynot-App und wollte meine Notizen sichern. Deshalb habe ich hier einen Symlink verwendet. Google Drive erkennt den Link als tatsächliche Datei und synchronisiert die Dateien einwandfrei, während sich die tatsächliche Datei noch im Ordner "appdata" befindet.
Wenn ich lokal Dateien wie Projektordner habe, die nicht mit der Cloud synchronisiert werden sollen, verwende ich Verknüpfungen (Kopieren, Einfügen-> Verknüpfung einfügen).
quelle