Maison > Tutoriel système > Linux > le corps du texte

Comment créer des liens symboliques sous Linux [Guide complet]

WBOY
Libérer: 2024-02-09 14:21:23
avant
906 Les gens l'ont consulté

Les liens symboliques, également appelés liens symboliques ou liens symboliques, sont un type de fichier spécial. C'est similaire à un raccourci dans Windows, pointant vers un autre fichier ou répertoire. Créer un lien symbolique équivaut à créer un alias pour le fichier réel.

Lorsque vous accédez à un lien symbolique, vous accédez en fait au fichier cible vers lequel pointe le lien symbolique. Les modifications apportées au contenu du fichier lié affectent le contenu du fichier cible réel.

Utilisez la commande ls avec l'option -l pour afficher les liens symboliques. Ils sont les suivants :

lrwxrwxrwx 1 linuxmi linuxmi     11  2月 1日 18:58 linuxmi.md -> linuxmi.dat
Copier après la connexion
如何在 Linux 中创建符号链接 [完整指南]

Les liens symboliques offrent un moyen pratique d'organiser et de partager des fichiers. Ils fournissent un accès rapide à des chemins de répertoire longs et déroutants. Ils sont largement utilisés sous Linux pour relier des bibliothèques.

Maintenant que vous savez quelque chose sur les liens symboliques, voyons comment les créer.

Comment créer un lien symbolique sous Linux

Pour créer un lien symbolique du nom du lien vers un fichier cible, ​​vous pouvez utiliser la commande ln avec l'option -s comme suit :

ln -s target_file link_name
Copier après la connexion
L'option

-s est importante ici. Déterminez le lien comme un lien symbolique. Si vous ne l'utilisez pas, cela crée un lien physique. J'expliquerai la différence entre les liens symboliques et les liens physiques dans un autre article.

Comment suivre les liens symboliques

Pour savoir vers quel fichier réel le lien pointe réellement, utilisez la commande realpath :

realpath link_name
Copier après la connexion

Il existe d'autres moyens de suivre les liens symboliques vers leurs fichiers sources, mais realpath est le plus simple.

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

Comment supprimer les liens symboliques

Il n'existe pas de commande spéciale pour supprimer les liens symboliques sous Linux. Vous pouvez utiliser la même commande rm que celle que vous utilisez pour supprimer des fichiers et des répertoires.

rm link_name
Copier après la connexion
如何在 Linux 中创建符号链接 [完整指南]

La suppression d'un lien ne supprimera pas le fichier source auquel il est lié.

Vous pouvez également supprimer plusieurs liens symboliques en une seule commande :

rm link1 link2
Copier après la connexion

Il existe également une commande de dissociation. Mais contrairement à l’impression donnée par le nom, la commande unlink n’est pas spécifiquement utilisée pour supprimer des liens. Bien entendu, il peut supprimer des fichiers, des dossiers et des liens. Cependant, elle présente certaines limites et la commande rm est un meilleur choix, même pour supprimer des liens.

💡Si vous souhaitez lister les liens symboliques à l'aide de la commande find, vous pouvez utiliser l'option *-type l. *

Notes sur les liens symboliques

Les liens symboliques peuvent parfois prêter à confusion, vous devez donc être conscient de certaines choses.

Les modifications apportées au lien sont reflétées dans le fichier original

Après tout, c’est tout le but des liens. Vous pouvez accéder au fichier cible en accédant au lien. Vous pouvez apporter des modifications au fichier cible via des liens. Voyons des exemples.

J'ai un fichier prog.py dans newdir/test_dir. Il possède les propriétés suivantes :

┌──(linuxmi㉿linuxmi)-[~]
└─$ ln -s /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py test
Copier après la connexion
如何在 Linux 中创建符号链接 [完整指南]

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

lrwxrwxrwx 1 linuxmi linuxmi     44  2月 1日 19:24 test -> /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py
Copier après la connexion

注意到行首的 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
Copier après la connexion

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

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

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

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

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

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

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

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

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

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

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

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

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:lxlinux.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!