符号链接,也称为符号链接或软链接,是一种特殊类型的文件,它简单地指向另一个文件或目录,就像Windows中的快捷方式一样。创建符号链接就像为实际文件创建别名一样。如果你试图访问一个符号链接,你实际上是在访问该符号链接指向的目标文件。更改链接文件的内容会更改实际目标文件的内容。如果使用带有选项-l的ls命令,符号链接如下所示:lrwxrwxrwx1linuxmilinuxmi11Feb118:58linuxmi.md->linuxmi.dat在大多数Linux发行版中,该链接与其余部分不同条目,以便您可以将链接与常规文件和目录区分开来。符号链接提供了一种组织和共享文件的便捷方式。它们提供对长而混乱的目录路径的快速访问。它们在Linux中大量用于链接库。现在您对符号链接有了一些了解,让我们看看如何创建它们。如何在Linux中创建符号链接要从链接名称创建到目标文件的符号链接,您可以使用带有-s选项的ln命令,如下所示:ln-starget_filelink_name-s选项在这里很重要。判断该链接为软链接。如果你不使用它,它会创建一个硬链接。我将在另一篇文章中解释软链接和硬链接的区别。如何跟踪符号链接要了解链接实际指向哪个真实文件,请使用realpath命令:realpathlink_name还有其他方法可以跟踪软链接到其源文件,但realpath是最简单的。如何删除符号链接Linux中没有删除符号链接的特殊命令。您可以使用与删除文件和目录相同的rm命令::rmlink_name删除链接不会删除它链接到的源文件。您还可以在一个命令中删除多个符号链接:rmlink1link2还有一个unlink命令。但与名字给人的印象不同,unlink命令并不是专门用来删除链接的。当然,它可以删除文件、文件夹和链接。但是,它有一定的局限性,即使对于删除链接,rm命令也是更好的选择。如果你想用find命令列出符号链接,你可以使用-typel选项。关于符号链接的注意事项符号链接有时会令人困惑,因此您应该注意一些事项。对链接所做的更改会反映在原始文件中,毕竟,这就是链接的意义所在。您可以通过链接访问目标文件。您可以通过链接对目标文件进行更改。让我们看一个例子。我在newdir/test_dir中有一个文件prog.py。它具有以下属性:-rw-r--r--1linuxmilinuxmi1926Feb119:08/home/linuxmi/linuxmi.com/linuxmi/linuxmi.py现在,我将在当前目录中创建指向这个文件的软链接:┌──(linuxmi?linuxmi)-[~]└─$ln-s/home/linuxmi/linuxmi.com/linuxmi/linuxmi.pytest下面是新建链接的属性:lrwxrwxrwx1linuxmilinuxmi44February1st19:24test->/home/linuxmi/linuxmi.com/linuxmi/linuxmi.py你注意到行开头的l了吗(是L,不是1)?如果你熟悉Linux中的文件权限,你就会知道'l'是链接的意思,所以它告诉你这个文件实际上是一个链接。提醒一下,-表示文件,d表示目录。现在,如果我使用此链接更改内容或属性,目标文件中也会反映相同的内容。例如,我在软链接上使用touch命令,您会注意到它更改了目标文件的时间戳。┌──(linuxmi?linuxmi)-[~/linuxmi]└─$触摸??测试┌──(linuxmi?linuxmi)-[~/linuxmi]└─$ls-l/home/linuxmi/linuxmi.com/linuxmi/linuxmi.py-rw-r--r--1linuxmilinuxmi1926Feb119:27/home/linuxmi/linuxmi.com/linuxmi/linuxmi.py它链接到文件还是目录?你可能不知道!您如何知道链接指向的是文件还是目录?只有按照目标文件本身的路径,您才能知道这一点。您可以创建指向不存在的文件或目录的链接是的,这是完全可能的。这就是为什么在Linux中创建软链接时要小心的原因。您链接到的目标文件不需要存在。创建指向不存在的文件/目录的链接时,您不会收到任何错误或警告。ls命令仍然有效。该错误仅在您尝试通过链接或单独访问目标文件时发生。┌──(linuxmi?linuxmi)-[~/linuxmi]└─$ln-snon_existant_dirlink_dir┌──(linuxmi?linuxmi)-[~/linuxmi]└─$lesslink_dirlink_dir:Nosuchfileordirectorysymboliclinkis使用777权限创建,但没有意义您是否注意到符号链接上的文件权限?符号链接始终使用777权限(rwxrwxrwx)创建。对于常规文件,这意味着任何人都可以访问该文件。但链接不是。lrwxrwxrwx1linuxmilinuxmi11Feb118:58linuxmi.md->linuxmi.dat如果按原样处理链接上的文件权限,任何用户都可以创建指向安全文件的符号链接并自由访问它。这将是一个主要的安全问题。值得庆幸的是,这不会发生。因为目标文件的权限很重要,而不是链接的权限。您可以使用chmod命令更改链接的权限,但它会更改链接文件的权限,而不是链接本身。您可以将链接链接到链接,这是链接符号链接,您可以创建指向另一个链接的符号链接,等等。这称为链式符号链接。最好避免使用它们,因为它会造成更多混乱。是的,就是这样。我假设您现在对软链接有了更好的理解,并且知道如何在Linux中创建符号链接。您还可以查看symlinks命令,它可以帮助您在Linux中找到损坏的符号链接并轻松管理它们。
