Heim > System-Tutorial > LINUX > Hauptteil

So erstellen Sie symbolische Links unter Linux [Vollständige Anleitung]

WBOY
Freigeben: 2024-02-09 14:21:23
nach vorne
907 Leute haben es durchsucht

Symbolische Links, auch Softlinks oder Symlinks genannt, sind ein besonderer Dateityp. Es ähnelt einer Verknüpfung in Windows, die auf eine andere Datei oder ein anderes Verzeichnis verweist. Das Erstellen eines symbolischen Links entspricht dem Erstellen eines Alias ​​für die eigentliche Datei.

Wenn Sie auf einen symbolischen Link zugreifen, greifen Sie tatsächlich auf die Zieldatei zu, auf die der symbolische Link verweist. Änderungen am Inhalt der verknüpften Datei wirken sich auf den Inhalt der eigentlichen Zieldatei aus.

Verwenden Sie den Befehl ls mit der Option -l, um symbolische Links anzuzeigen. Sie lauten wie folgt:

lrwxrwxrwx 1 linuxmi linuxmi     11  2月 1日 18:58 linuxmi.md -> linuxmi.dat
Nach dem Login kopieren
如何在 Linux 中创建符号链接 [完整指南]

Symbolische Links bieten eine bequeme Möglichkeit, Dateien zu organisieren und zu teilen. Sie bieten schnellen Zugriff auf lange und verwirrende Verzeichnispfade. Sie werden unter Linux häufig zum Verknüpfen von Bibliotheken verwendet.

Da Sie nun etwas über symbolische Links wissen, sehen wir uns an, wie man sie erstellt.

So erstellen Sie einen symbolischen Link unter Linux

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

ln -s target_file link_name
Nach dem Login kopieren
Die

-s-Option ist hier wichtig. Bestimmen Sie den Link als Softlink. Wenn Sie es nicht verwenden, wird ein fester Link erstellt. Den Unterschied zwischen Softlinks und Hardlinks erkläre ich in einem anderen Artikel.

So folgen Sie symbolischen Links

Um herauszufinden, auf welche echte Datei der Link tatsächlich verweist, verwenden Sie den Befehl realpath:

realpath link_name
Nach dem Login kopieren

Es gibt andere Möglichkeiten, Softlinks zu ihren Quelldateien zu verfolgen, aber Realpath ist die einfachste.

如何在 Linux 中创建符号链接 [完整指南]

So löschen Sie symbolische Links

Es gibt keinen speziellen Befehl zum Löschen symbolischer Links unter Linux. Sie können denselben rm-Befehl verwenden, den Sie zum Löschen von Dateien und Verzeichnissen verwenden.

rm link_name
Nach dem Login kopieren
如何在 Linux 中创建符号链接 [完整指南]

Durch das Löschen eines Links wird die Quelldatei, auf die er verweist, nicht gelöscht.

Sie können auch mehrere Symlinks in einem Befehl löschen:

rm link1 link2
Nach dem Login kopieren

Es gibt auch einen Befehl zum Aufheben der Verknüpfung. Doch anders als der Name vermuten lässt, wird der Unlink-Befehl nicht speziell zum Löschen von Links verwendet. Natürlich können Dateien, Ordner und Links gelöscht werden. Es gibt jedoch gewisse Einschränkungen und der Befehl rm ist selbst zum Entfernen von Links die bessere Wahl.

💡Wenn Sie symbolische Links mit dem Suchbefehl auflisten möchten, können Sie die Option *-type l verwenden. *

Hinweise zu symbolischen Links

Symbolische Links können manchmal verwirrend sein, daher gibt es ein paar Dinge, die Sie beachten sollten.

Am Link vorgenommene Änderungen werden in der Originaldatei widergespiegelt

Das ist schließlich der ganze Zweck von Links. Sie können auf die Zieldatei zugreifen, indem Sie auf den Link zugreifen. Über Links können Sie Änderungen an der Zieldatei vornehmen. Sehen wir uns Beispiele an.

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

┌──(linuxmi㉿linuxmi)-[~]
└─$ ln -s /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py test
Nach dem Login kopieren
如何在 Linux 中创建符号链接 [完整指南]

以下是新创建链接的属性:

lrwxrwxrwx 1 linuxmi linuxmi     44  2月 1日 19:24 test -> /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py
Nach dem Login kopieren

注意到行首的 l(是 L,不是一 1)了吗?如果你熟悉 Linux 中的文件权限,你就会知道’l’表示链接,因此它告诉你这个文件实际上是一个链接。提个醒,- 表示文件,d 表示目录。

现在,如果我使用此链接更改内容或属性,同样会反映在目标文件中。例如,我在软链接上使用 touch 命令,你会注意到它改变了目标文件的时间戳。

┌──(linuxmi㉿linuxmi)-[~/linuxmi]
└─$ touch test
                                                                           
┌──(linuxmi㉿linuxmi)-[~/linuxmi]
└─$ ls -l /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py
-rw-r--r-- 1 linuxmi linuxmi 1926  2月 1日 19:27 /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py
Nach dem Login kopieren

它链接到文件还是目录?你可能不知道!

您如何知道链接指向的是文件还是目录?在您按照路径访问目标文件本身之前,您无法知道这一点。

您可以创建指向不存在的文件或目录的链接

是的,这完全有可能。这就是为什么在 Linux 中创建软链接时应该小心的原因。您链接到的目标文件不需要存在。创建指向不存在的文件/目录的链接时,您不会收到任何错误或警告。

ls 命令仍然有效。仅当您尝试通过链接或单独访问目标文件时才会出现错误。

┌──(linuxmi㉿linuxmi)-[~/linuxmi]
└─$ ln -s non_existant_dir link_dir
                                                                           
┌──(linuxmi㉿linuxmi)-[~/linuxmi]
└─$ less link_dir
link_dir: 没有那个文件或目录
Nach dem Login kopieren
如何在 Linux 中创建符号链接 [完整指南]

符号链接是使用 777 权限创建的,但它没有任何意义

您是否注意到符号链接上的文件权限?符号链接始终使用 777 权限 (rwxrwxrwx) 创建。对于常规文件,这意味着任何人都可以访问该文件。但链接并非如此。

lrwxrwxrwx 1 linuxmi linuxmi 11 2月 1日 18:58 linuxmi.md -> linuxmi.dat
如果链接上的文件权限按原样处理,任何用户都可以创建指向安全文件的符号链接并自由访问它。那将是一个主要的安全问题。值得庆幸的是,这不会发生。因为目标文件的权限很重要,而不是链接的权限。
Nach dem Login kopieren

您可以使用 chmod 命令更改链接的权限,但它会更改链接文件的权限,而不是链接本身。

您可以链接到一个链接的链接,也就是链式符号链接

您可以创建指向另一个链接的符号链接等等。这称为链式符号链接。最好避免使用它们,因为它会造成更多混乱。

嗯,就是这样。我假设您现在对软链接有了更好的了解,并且您知道如何在 Linux 中创建符号链接。您也可以查看 symlinks 命令,它可以帮助您在 Linux 中找到损坏的符号链接并轻松管理它们。

Das obige ist der detaillierte Inhalt vonSo erstellen Sie symbolische Links unter Linux [Vollständige Anleitung]. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:lxlinux.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!