GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was sind symbolische Links in Linux? Wie erstellt man symbolische Links?

Ein symbolischer Link, auch bekannt als Symlink oder Softlink , ist ein spezieller Dateityp, der einfach auf eine andere Datei oder ein anderes Verzeichnis verweist, genau wie Verknüpfungen in Windows. Das Erstellen eines symbolischen Links ist wie das Erstellen eines Alias ​​für eine tatsächliche Datei.

Wenn Sie versuchen, auf den symbolischen Link zuzugreifen, greifen Sie tatsächlich auf die Zieldatei zu, auf die der symbolische Link zeigt. Änderungen am Inhalt der Linkdatei ändern den Inhalt der eigentlichen Zieldatei.

Wenn Sie den Befehl ls mit der Option -l verwenden, sieht ein symbolischer Link so aus:

lrwxrwxrwx 1 abhishek abhishek 23 Jul  2 08:51 link_prog -> newdir/test_dir/prog.py

In den meisten Linux-Distributionen werden die Links in einer anderen Farbe als die restlichen Einträge angezeigt, damit Sie die Links von den normalen Dateien und Verzeichnissen unterscheiden können.

Symbolische Links bieten eine praktische Möglichkeit zum Organisieren und Freigeben von Dateien. Sie bieten schnellen Zugriff auf lange und verwirrende Verzeichnispfade. Sie werden stark beim Linken von Bibliotheken unter Linux verwendet.

Nachdem Sie nun ein wenig über die symbolischen Links wissen, sehen wir uns an, wie man sie erstellt.

So erstellen Sie einen symbolischen Link zur Zieldatei vom Linknamen , können Sie den ln-Befehl mit der Option -s wie folgt verwenden:

ln -s target_file link_name

Wichtig ist hier die Option -s. Es bestimmt, dass es sich bei dem Link um einen Softlink handelt. Wenn Sie es nicht verwenden, wird es einen harten Link erstellen. Den Unterschied zwischen Softlinks und Hardlinks erkläre ich in einem anderen Artikel.

Symbolische Links können manchmal verwirrend sein, daher sollten Sie einige Dinge beachten.

Das ist schließlich der ganze Zweck der Links. Sie greifen auf die Zieldatei zu, indem Sie auf den Link zugreifen. Über die Links können Sie Änderungen an der Zieldatei vornehmen. Mal sehen mit Beispiel.

Ich habe eine Datei prog.py in newdir/test_dir. Es hat die folgenden Attribute:

-rw-r--r-- 1 abhishek abhishek 163 Apr 13 15:07 newdir/test_dir/prog.py

Jetzt erstelle ich einen Softlink zu dieser Datei in meinem aktuellen Verzeichnis:

ln -s newdir/test_dir/prog.py link_prog

Hier sind die Attribute des neu erstellten Links:

lrwxrwxrwx 1 abhishek abhishek 23 Jul  2 08:51 link_prog -> newdir/test_dir/prog.py

Beachten Sie das l (es ist L, nicht eins) am Anfang der Zeile? Wenn Sie mit den Dateiberechtigungen unter Linux vertraut sind, wissen Sie, dass das „l“ für einen Link steht und Ihnen daher mitteilt, dass diese Datei tatsächlich ein Link ist. Um Ihr Gedächtnis aufzufrischen, bedeutet – Datei und d Verzeichnis.

Wenn ich nun diesen Link verwende, um den Inhalt oder die Attribute zu ändern, wird dies in der Zieldatei widergespiegelt. Zum Beispiel verwende ich den Touch-Befehl für den Softlink und Sie werden feststellen, dass er den Zeitstempel der Zieldatei ändert.

touch link_prog 

ls -l newdir/test_dir/prog.py 

-rw-r--r-- 1 abhishek abhishek 163 Jul  2 10:04 newdir/test_dir/prog.py

Woher wissen Sie, ob der Link auf eine Datei oder ein Verzeichnis verweist? Sie können das nicht wissen, bis Sie dem Pfad folgen und auf die Zieldatei selbst zugreifen.

Ja, das ist durchaus möglich. Aus diesem Grund sollten Sie beim Erstellen von Softlinks in Linux vorsichtig sein. Die Zieldatei, auf die Sie verlinken, muss nicht existieren. Sie erhalten keinen Fehler oder keine Warnung, wenn Sie einen Link zu einer Datei/einem Verzeichnis erstellen, die bzw. das nicht existiert.

Sie erhalten nur dann einen Fehler, wenn Sie versuchen, auf die Zieldatei zuzugreifen, entweder über den Link oder alleine. Der ls-Befehl wird trotzdem funktionieren.

ln -s non_existant_dir link_dir
less link_dir
link_dir: No such file or directory

Haben Sie die Dateiberechtigung auf dem symbolischen Link bemerkt? Die Symlinks werden immer mit 777-Berechtigung (rwxrwxrwx) erstellt. Für eine normale Datei würde dies bedeuten, dass jeder auf die Datei zugreifen kann. Aber das gilt nicht für die Links.

lrwxrwxrwx 1 abhishek abhishek 23 Jul  2 08:51 link_prog -> newdir/test_dir/prog.py

Wenn die Dateiberechtigungen für die Links so behandelt würden, wie sie sind, könnte jeder Benutzer einen Symlink zu einer sicheren Datei erstellen und frei darauf zugreifen. Das wäre ein großes Sicherheitsproblem. Zum Glück passiert das nicht. Weil die Berechtigung für die Zieldateien wichtig ist, nicht die Berechtigung für Links.

Sie können den Befehl chmod verwenden, um die Berechtigung für den Link zu ändern, aber es ändert die Berechtigung der verknüpften Datei, nicht den Link selbst.

Sie können einen symbolischen Link erstellen, der auf einen anderen Link verweist, und so weiter. Dies wird als verketteter symbolischer Link bezeichnet. Es ist besser, sie zu vermeiden, da dies zu mehr Verwirrung führt.

Das war's. Ich nehme an, Sie kennen sich jetzt besser mit Softlinks aus und wissen, wie man symbolische Links unter Linux erstellt. Sie können etwas über den Symlinks-Befehl lesen, der Ihnen helfen kann, defekte Symlinks in Linux zu finden und sie einfach zu verwalten.

Wenn Sie Fragen oder Anregungen haben, hinterlassen Sie bitte unten einen Kommentar.


Linux
  1. So erstellen Sie harte und symbolische Links in Linux

  2. So erstellen Sie eine passwortgeschützte ZIP-Datei unter Linux

  3. So erstellen Sie einen Swap unter Linux

  4. So erstellen Sie eine Auslagerungsdatei unter Linux

  5. Was sind symbolische Links (Soft Links) und wie erstellt man sie unter Linux

Anleitung zum Hinzufügen symbolischer Linux-Links

Linux ln – So erstellen Sie einen symbolischen Link in Linux [Beispiel-Bash-Befehl]

So entfernen Sie symbolische Links unter Linux

So erstellen Sie symbolische Links unter Linux

Der ln-Befehl unter Linux:Soft- und Hardlinks erstellen

So erhalten Sie eine Liste symbolischer Links unter Linux