文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何在 Linux 中创建符号链接

2024-12-13 15:03

关注

如果您尝试访问符号链接,您实际上访问的是符号链接指向的目标文件。对链接文件内容所做的更改会更改实际目标文件的内容。

如果使用带选项 -l 的 ls 命令,符号链接如下所示:

lrwxrwxrwx 1 linuxmi linuxmi     11  2 1 18:58 linuxmi.md -> linuxmi.dat

在大多数 Linux 发行版中,链接以与其余条目不同的颜色显示,以便您可以将链接与常规文件和目录区分开来。

符号链接提供了一种组织和共享文件的便捷方式。它们提供对长而混乱的目录路径的快速访问。它们在 Linux 中大量用于链接库。

现在您对符号链接有了一些了解,让我们看看如何创建它们。

如何在 Linux 中创建符号链接

要从 link name 创建指向目标文件的符号链接,您可以使用带有 -s 选项的 ln 命令,如下所示:

ln -s target_file link_name

-s 选项在这里很重要。判断该链接为软链接。如果你不使用它,它会创建一个硬链接。我将在另一篇文章中解释软链接和硬链接之间的区别。

如何跟踪符号链接

要知道链接实际指向哪个真实文件,请使用 realpath 命令:

realpath link_name

还有其他方法可以跟踪到其源文件的软链接,但 realpath 是最简单的。

如何删除符号链接

Linux中没有删除符号链接的特殊命令。您可以使用与删除文件和目录相同的 rm 命令::

rm link_name

删除链接不会删除它链接到的源文件。

您也可以在一个命令中删除多个符号链接:

rm link1 link2

还有一个unlink 命令。但与名字给人的印象不同,unlink 命令并不是专门用来删除链接的。当然,它可以删除文件、文件夹和链接。但是,它有某些限制,即使是删除链接,rm 命令也是更好的选择。

如果要使用 find 命令列出符号链接,可以使用该-type l选项。

关于符号链接的注意事项

符号链接有时可能会造成混淆,因此您应该注意一些事项。

对链接所做的更改反映在原始文件中

毕竟,这就是链接的全部目的。您可以通过访问链接来访问目标文件。您可以通过链接对目标文件进行更改。让我们看例子。

我在 newdir/test_dir 中有一个文件 ​​prog.py​​。它具有以下属性:

-rw-r--r-- 1 linuxmi linuxmi 1926  2 1 19:08 /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py

现在,我将在当前目录中创建指向该文件的软链接:

┌──(linuxmi㉿linuxmi)-[~]
└─$ ln -s /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py test

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

lrwxrwxrwx 1 linuxmi linuxmi     44  2 1 19:24 test -> /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py

注意到行首的 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

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

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

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

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

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

┌──(linuxmi㉿linuxmi)-[~/linuxmi]
└─$ ln -s non_existant_dir link_dir

┌──(linuxmi㉿linuxmi)-[~/linuxmi]
└─$ less link_dir
link_dir: 没有那个文件或目录

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

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

lrwxrwxrwx 1 linuxmi linuxmi 11 2 1 18:58 linuxmi.md -> linuxmi.dat

如果链接上的文件权限按原样处理,任何用户都可以创建指向安全文件的符号链接并自由访问它。那将是一个主要的安全问题。值得庆幸的是,这不会发生。因为目标文件的权限很重要,而不是链接的权限。

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

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

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

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

来源:Linux迷内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯