IT门户网,专注电脑知识与技术及手机硬件信息服务网站!

当前位置:IT门户网 > 系统教程 >

详解Linux ln 呼吁

时间:2021-09-14    来源:IT门户网    人气:

Linux 中的文件分为 Hard Link 和 Symbolic Link 两种。Hard Link 文件又被称为硬链接文件、实体链接文件,Symbolic Link 文件则常被称为标记链接、软链接文件。

ln 呼吁用来在文件之间成立链接。在先容 ln 呼吁前,让我们先来搞清楚毕竟什么是硬链接,什么又是软链接。

Hard Link(硬链接)

我们知道,在 Linux 系统中,每个文件对应一个 inode,文件的内容在存储在 inode 指向的 data block 中。要读取该文件的内容,需要通过文件地址的目次中记录的文件名找到文件的 inode 号,然后通过 inode 找到存储文件内容的 data block(参考《Linux 文件与目次》)。

也就是说,文件名存储在目次中,inode 号执行文件存储的内容,文件名和 inode 之间有一个对应干系。那么多个文件名可不行以同时指向同一个 inode 呢?谜底是可以的,这就是硬链接!从本质上来说,硬链接只是在目次下新添加了一个文件名,这个文件名与一个已有文件的 inode 相关联。让我们也通过 /etc/crontab 文件来举办调查:

$ ll -i /etc/crontab131213 -rw-r--r-- 1 root root 722 Nov 16 2017 /etc/crontab

利用 ln 呼吁在当前目次下建设一个 /etc/crontab 文件的硬链接,然后调查其文件属性:

$ sudo ln /etc/crontab .$ ll -i /etc/crontab crontab131213 -rw-r--r-- 2 root root 722 Nov 16 2017 crontab131213 -rw-r--r-- 2 root root 722 Nov 16 2017 /etc/crontab

这两个文件名关联的 inode 号完全沟通,都是 131213,所以它们指向的是同一个文件。同时请留意文件属性中的第三个字段,由 1 酿成了 2。这个字段被称为 "链接数",它说明有几多个文件名链接到同一个文件的 inode。

别的需要留意的一点是上面所有输出中的第二个字段中的第一位,它们都是 "-",它说明这个文件的范例为普通文件,链接范例为硬链接。

我们可以通过下图来领略硬链接在文件系统中的实现方法:

详解Linux ln 号令

硬链接的特点

险些不特别占用空间 只要尚有一个文件名引用着文件,文件就不会被真正删除

由于硬链接只是在目次中添加了一条包括文件名和 对应 inode 的记录,所以它险些不会耗损特另外磁盘容量。
别的在删除硬链接所关联的文件时,其实只是删除了一条目次中的记录,真正的文件并不受影响。只有在删除最后一个硬链接时才会真正删除文件的内容数据。

硬链接的范围性

不能跨文件系统建设硬链接 不能链接目次

由于这两个限制,实际利用中硬链接并没有软链接利用的遍及,下面我们看看毕竟什么是软链接。

Symbolic Link(软链接)

软链接的实现方法与硬链接有本质上的差异。建设软链接时会建设一个新的文件(分派一个 inode 和对应的 data block),新文件的 data block 中存储了方针文件的路径。

相关文章

系统教程排行榜

更多>>

网络知识排行榜

更多>>

系统教程排行榜

更多>>

服务号