创建软链接的命令:ln -s XXX 新软链接名
创建硬链接的命令:ln XXX 新软链接名
通过观察,我们发现创建软链接后, 形成的软链接的 inode 与 原来的文件的 inode不同,其中一列数字还是 1,没有发生改变,这一列数字代表着 硬链接数。
创建硬链接后,形成的硬链接的 inode 与原来的文件的 inode 相同,但是 硬链接数 变成了 2。
软硬链接的本质区别:有没有独立的 inode。
软链接有独立的 inode ---> 软连接是一个独立的文件。
软连接可以理解为:软链接的文件内容,就是指向文件对应的路径。
软链接相当于Windows下的快捷方式。
硬链接没有独立的 inode ---> 硬连接不是一个独立的文件。
硬链接可以理解为:创建硬链接,不是真正的创建文件,是在指定的目录下,建立了文件名与inode的映射关系,仅此而已!!!
删除文件时,也可以用unlink 代替 rm
创建一个目录,一个文件,为什么目录对应的硬链接数是2,文件对应的硬链接数是1呢?
不难想出,test.c(这个文件名)和自己的inode本身就是一对映射。
那目录dir除了本身 inode 映射的自己之外,另外一个硬链接从哪里来的呢?
在linux中,一个 . 也是一个文件,通过观察,我们发现, . 的 inode 与dir对应的 inode 相同。
我们在linux中,执行一个可执行程序,格式为: ./
那么这个 . 是什么呢? 这个 . 指的就是当前目录
我们通过 inode 中的 count,就可以知道有多少个文件名和当前 inode 关联
当我们删除一个文件的死后,并不是吧这个文件的 inode 删除,而是将这个文件对应的 inode 引用计数 -- ,当引用计数为 0 的时候,这个文件才真正的删除了。