一、概念
文件系统中具有元数据(metadata)和数据块(data)的概念,其中元数据负责数据的指向,告知数据的具体存放位置,类似于书本的目录,数据块则负责存储真正的数据。
硬链接(hard link)可以认为是指向元数据的链接。如果一个data有多个硬链接,其实就是这个数据的元数据有多个链接,那么这些硬链接指向的数据状态将是完全相同的。
软链接(soft link)则类似于windows系统下的文件快捷方式,该连接本身指向的是元数据之上的硬链接,而非直接链接在元数据。
二、常规使用
1.硬链接
查看文件的硬连接数量:ls -i -al
其中第三列中的数字即代表硬链接的数量,可以看到当前目录下的file1.txt文件只有一个硬链接数
创建硬连接:ln [待创建硬链接文件] [创建的硬链接]
对file1.txt文件创建一个名未file2.txt的硬链接,可以看到他们具有同样的inode编号,也即他们指向的是同一个数据块。如果此时对其中一个硬链接做出修改,对应的所有硬链接的指向数据块文件将都会被修改。
删除一个硬链接,其他硬链接不会被影响
硬链接使用限制,因为其链接的是磁盘的元数据,故不可跨磁盘,不可跨文件系统
2.软链接
创建软链接:ln -s [待创建软链接文件] [创建的软链接]
创建的软链接具有不同的inode号,故可以认为是与之前文件完全不通的文件,这也是软链接与硬链接最本之的区别
如果此时将其指向的文件删除,即使还有一个硬链接存在,其指向关系也会丢失