关于javascript:硬连接和软连接有什么不同

35次阅读

共计 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

正文完
 0