软链接:类似于Windows下的应用快捷方式
硬链接:新增文件和inode编号的映射关系
目录
4、常见的硬链接
一、软链接
能在当前目录下直接使用其他目录下的文件
1、命令行指令
建立软链接:ln -s 链接文件的路径 软链接名
解除软链接:unlink 链接名
-s 表示soft
ln -s log.txt log_s #链接当前目录下的log.txt,链接名为log_s
ln -s workspace/ReadFile/log2.txt log2_s
unlink log_s #解除log_s的链接
2、软链接的作用
假设我们希望在当前路径下查看 workspace/ReadFile/log2.txt
我们在当前目录下建立一个软链接,链接名为log_s
ln -s workspace/ReadFile/log2.txt log2_s
如果不爆红,就说明软链接建立成功了
然后我们可以试着在当前目录下查看这个文件的内容
3、软链接的特点
我们可以看看 log2.txt 和 log_s 的inode编号
我们发现两个文件的inode编号不一样
说明软连接是一个独立的文件,而且有自己独立的inode!指向的 block的内容是 链接的文件路径
二、硬链接
1、命令行指令
建立硬链接:ln 链接的文件名 硬链接名
断开硬链接:unlink 硬链接名
ln log.txt log-hard #与当前路径下的log.txt建立硬链接,链接名为log-hard
硬链接的作用也是能够通过链接名 访问到链接的文件
2、硬链接的特点
我们同样来看看inode的编号
我们会发现两者的inode编号是一样的,说明硬链接根本不是一个独立的文件,而是一个文件名和inode编号的映射关系。最后都链接到了同一个数据块
- 任意一个链接对数据块做出的修改,其他链接都能看得到
- 删除一个链接也只是链接计数减少,只有当链接计数为0时,数据块才会被释放。
3、硬链接数
红色部分的数字代表硬链接数,也就是inode编号 和 多少个文件名建立起了映射关系
log.txt 和 inode编号为668060的文件 建立了硬链接关系
log-hard和 inode编号为668060的文件 建立了硬链接关系
所以硬链接数是 2
4、常见的硬链接
(1) 文件的硬链接
一个文件在被创建的时候就有了一个硬链接
(2) 目录的硬链接
一个目录在被创建的时候,至少有两个硬链接
首先是 myfile 和 inode编号为 796685的文件 建立起了 硬链接关系
然后是 . 和 796685 建立起了 硬链接关系
如果目录myfile中还存在一级目录 myfile_1
那么就会有 .. 和 796685 建立起了 硬链接关系
这个时候目录的硬链接有
——》myfile 和 796685
——》 . 和 796685(进入到myfile目录下, . 代表当前目录,即myfile)
——》.. 和 796685(进入到myfile_1目录下, ..代表上一级目录,即myfile)