Linux 软连接与硬连接的区别

一、软连接(快捷方式) ln -s …/file file.s

1.软连接file.s的大小4字节,其内容是访问的路径
file.soft的大小为6字节,因为其内容(路径)不一样。

Linux 软连接与硬连接的区别

2.在windows下,快捷方式移动位置后仍可使用,而在linux不一定能使用。
Linux 软连接与硬连接的区别

3.若是绝对路径的软连接即可使用,如下图。故为保证软连接可以任意搬移,创建时务必对源文件使用绝对路径。

Linux 软连接与硬连接的区别

4.源文件的读写权限和软连接的读写权限不一样。

二、硬链接 ln …/file file.h 无需参数

1.创建一个硬链接,硬链接的数量会增加
Linux 软连接与硬连接的区别

2.硬链接的特征:修改任意一个硬链接,其他文件也会发生变化,即同步。
如在file 后追加2,打开file.h,可以看到file.h也变化了。
Linux 软连接与硬连接的区别

3.linux系统如何实现的硬链接?
(1)指针可以吗?同一个地址指向3个文件,思路可行。但是指针是内存概念,文件是存储在磁盘上的。
(2)使用的是inode 。硬链接使用相同的inode

Linux 软连接与硬连接的区别

4.删除时,是什么原理呢?
删除时,使用的是硬链接计数,即硬链接计数减一
Linux 软连接与硬连接的区别

总结:1. 操作系统给每一个文件赋予唯一的inode,当有相同inode的文件存在时,彼此同步。 2.删除时,只将硬链接计数减一,减为0时,inode被释放。