共计 1834 个字符,预计需要花费 5 分钟才能阅读完成。
硬连贯和软连贯是在硬盘中连贯文件的两种办法。硬连贯实质上是一个文件的同步正本,它间接援用源文件的 inode。软连贯则间接援用源文件,源文件再援用 inode,更像是源文件的一个快捷方式。那么硬连贯和软连贯到底有何不同呢?
inode
要了解硬连贯和软连贯的不同,首先要理解 inode。
inode 是一个形容文件或目录属性的数据库,如元信息、硬盘物理地址等。通过 inode,操作系统能够检索文件权限信息、物理地址等信息。当一个文件从一个文件夹移到另一个文件夹,文件将被挪动到硬盘的另一个地位,文件的 inode 值也会主动发生变化。
硬连贯
硬连贯间接通过 inode 援用文件。硬连贯只能用于文件,而不能用于目录。
硬连贯(Hard Link)扮演着源文件拷贝或镜像的角色。能够拜访源文件的数据,如果源文件被删除,硬连贯仍然能够拜访源文件的数据。
上面通过一个操作实例来具象的了解硬连贯:
创立并拜访源文件 :
$ touch sourcefile && echo "This is a plain text file." > sourcefile
$ cat sourcefile
This is a plain text file.
创立硬连贯 :
$ ln sourcefile hardfile
$ ls -li
79448344 -rw-r--r-- 2 joebon staff 27 5 23 15:47 hardfile
79448344 -rw-r--r-- 2 joebon staff 27 5 23 15:47 sourcefile
输入后果最右边一列是文件的 inode 值,它指向物理硬盘的一个区块。文件系统会保护一个援用计数,只有有文件指向这个区块,inode 就不会从硬盘上隐没。
咱们能够看到,源文件和硬连贯文件的 inode 值是一样的,都指向同一个硬盘区块。
删除源文件 :
$ rm sourcefile
$ cat hardfile
This is a plain text file.
咱们能够看到,删除源文件之后,硬连贯文件依然能够失常拜访。这是因为删除源文件只是删除了源文件对 inode 的援用,文件系统会对 inode 援用进行计数,只有仍存在 inode 援用,该 inode 就不会删除。
软连贯
软连贯实质上是源文件的一个快捷方式,指向源文件自身,而不是源文件的 inode 值。软连贯能够同时用于文件和目录,也能够在不同的硬盘或容器之间应用。
软连贯(Soft Link 或 Symbolic Link)扮演着源文件指针的角色。不能够拜访源文件数据,如果源文件被删除,软连贯将会指向一个不再存在的文件地址。
上面通过一个操作实例来具象的了解硬连贯:
创立硬连贯 :
$ ln -s sourcefile softfile
$ ls -li
79450053 lrwxr-xr-x 1 joebon staff 10 5 23 15:56 softfile -> sourcefile
79448344 -rw-r--r-- 2 joebon staff 27 5 23 15:47 sourcefile
咱们能够看出,软连贯和源文件的 inode 是不同的。
删除源文件 :
$ rm sourcefile
$ cat softfile
cat: softfile: No such file or directory
因为软连贯是间接指向源文件的,而不是指向 inode,所以只有删除源文件,软连贯文件就无奈失常拜访,即便源文件指向的 inode 此时可能依然存在。
不同点
一张图解释硬连贯和软连贯的实质不同:
硬连贯间接援用源文件援用的 inode,软连贯则间接援用源文件。
这点外围的不同点,也造就了以下诸多不同个性。对硬连贯和软连贯的不同点进行总结:
比照参数 | 硬连贯 | 软连贯 |
---|---|---|
Inode number | 硬连贯文件和源文件领有雷同的 inode number | 软连贯的文件和源文件领有不同的 inode number |
目录 | 硬连贯不容许连贯目录 | 软连贯容许连贯目录 |
文件系统 | 不能跨文件系统应用 | 能够跨文件系统应用 |
数据 | 源文件内容能够在硬连贯文件中应用 | 软连贯只指向源文件,不保留文件数据 |
源文件删除之后 | 源文件删除,硬连贯文件依然能够拜访源文件数据 | 源文件删除,软连贯将无法访问源文件数据 |
速度 | 更快 | 更慢 |
其中,Inode number:全称 index node number,是 Linux/Unix 零碎中文件的惟一 id;
参考资料
- Difference between Hard link and Soft link
- The difference between hard links and soft (or symbolic) links
- Hard links and Symbolic links — A comparison