Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。
Inode译成中文就是索引节点,它用来存放档案及目录的基本信息,包含时间、档名、使用者及群组等。
Block:存放档案内容数据的地方。
1.命令
硬链接:
ln 源文件 链接名
软链接:
ln -s 源文件 链接名
2.原理
硬链接:
透过A或者B的inode指定的block找到两个不同的档名,不管使用哪个都可以指定读取最终数据。
每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。
注:rm A删除的只是A这个文件名,而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。
软链接:
A的inode读取到俩接档的内容档名,根据档名链接到正确的目录取得目标档inode,最后访问正确的数据,如果目标档案删除,就无法透过链接档读取数据。
3.使用限制
硬链接:Hard Link(实体链接)
a.创建硬链接会增加额外的记录项以引用文件
b.对应于同一文件系统系统上一个物理文件
c.每个目录引用相同的inode号
d.创建时连接数递增
e.不能跨Filesystem
f.不能link目录
注:删除文件时rm命令递减计数的链接,文件要存在,至少有一个链接数,当链接数为零时,该文件被删除。
软链接:Symbolic Link(符号链接,快捷方式)
a.一个符号链接的内容是它引用文件的名称
b.可以对目录进行
c.可以跨分区
d.指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数
linux软链接与硬链接的区别
硬链接:相于当给文件增加了一个新名,在添加链接时会增加链接数,其inode结点数不会增加,支持绝对路径与相对路径且硬链接不能对目录来创建和跨分区来创建链接。
硬链接链接到文件被删除时,依旧可以通过链接文件来访问被删文件的数据。
软链接:可以支持对目录来创建链接
(注,当你用rm -rf 删除目录的时候,目录不会删除,但目录中的内容会被删除,并且会删除源文件)
a.linux软链接与硬链接的区别详解-linux 删除软链接。
b.软链接链接到一个文件时,相当于创建了一个新的文件,inode结点会增加。
c.软链接链接到的文件被删除时,不可以通过链接文件来访问被删的数据。
d.软链接支持跨分区链接。
e.软链接支持绝对路径与相对路径但要注意的是不要相对于当前的工作目录。
在一些情况软链接用相对路径还是好的:比如做备份移动目录的时候: