Unix/Linux 的软链接和硬链接
UNIX 中的链接是指向文件的指针。与任何编程语言中的指针一样,UNIX 中的链接是指向文件或目录的指针。创建链接是一种访问文件的快捷方式。链接允许多个文件名在别处引用同一个文件。
有两种类型的链接:
-
软链接或符号链接 -
硬链接
当链接的源(链接到的内容)被移动或删除时,这些链接的行为会有所不同。符号链接不更新(它们仅包含一个字符串,该字符串是其目标的路径名);硬链接始终引用源,即使移动或删除。
例如,如果我们有一个文件 a.txt。如果我们创建一个文件的硬链接然后删除文件,我们仍然可以使用硬链接访问该文件。但是如果我们创建一个文件的软链接,然后删除文件,就不能通过软链接访问到文件,软链接就变成了悬空。基本上硬链接增加了一个位置的引用计数,而软链接用作快捷方式(如在 Windows 中)
1. 硬链接
-
每个硬链接文件都被分配了与原始文件相同的 Inode 值,因此它们引用相同的物理文件位置。硬链接更灵活,即使原始文件或链接文件在整个文件系统中移动,也能保持链接,尽管硬链接无法跨越不同的文件系统。 -
ls -l 命令显示所有链接,链接列显示链接数。 -
链接具有实际文件内容 -
删除任何链接,只会减少链接数,但不会影响其他链接。 -
即使我们更改原始文件的文件名,硬链接也能正常工作。 -
我们不能为目录创建硬链接以避免递归循环。 -
如果删除了原始文件,则链接仍会显示文件的内容。 -
任何硬链接文件的大小都与原始文件相同,如果我们更改任何硬链接中的内容,则所有硬链接文件的大小都会更新。 -
硬链接的缺点是不能为不同文件系统的文件创建,也不能为特殊的文件或目录创建。 -
创建硬链接的命令是:
$ ln [原始文件名] [链接名]
2. 软链接
-
软链接类似于 Windows 操作系统中使用的文件快捷方式功能。每个软链接文件都包含一个指向原始文件的独立索引节点值。与硬链接类似,对任一文件中数据的任何更改都会反映在另一个文件中。软链接可以跨不同的文件系统链接,但是如果删除或移动了原始文件,软链接文件将无法正常工作(称为挂起链接)。 -
ls -l 命令显示第一列值为 l 的所有链接?链接指向原始文件。 -
软链接包含原始文件的路径而不是内容。 -
删除软链接除了删除原始文件外没有任何影响,链接变成“悬挂”链接,指向不存在的文件。 -
软链接可以链接到目录。 -
软链接的大小等于我们给的原文件的路径长度。例如,如果我们像 ln -s /tmp/hello.txt /tmp/link.txt这样链接一个文件,那么文件的大小将是 14 字节,等于“/tmp/hello.txt”的长度。 -
如果我们更改原始文件的名称,那么该文件的所有软链接都会变得悬空,即它们现在毫无价值。 -
跨文件系统链接:如果要跨文件系统链接文件,只能使用符号链接/软链接。 -
创建软链接的命令是:
$ ln -s [原始文件名] [链接名]
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfkbjha
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13