linux链接文件类似于Windows下的快捷方式;
链接文件分为软链接和硬链接;
一、硬链接:
1、首先我们在目录下创建一个文件 text.txt 文件;
用命令 touch 创建:touch text.txt
此时text.txt文件就创建好了
2、创建好之后,我们接着用 stat 命令查看一下text.txt文件信息: stat text.txt
此时我们看到:
text.txt文件的Inode节点为686809
text.txt文件的链接数为1
3、这时我们建立一个链接文件:ln 源文件 链接文件
ln text.txt text_hard.txt
此时text_hard.txt 是一个硬链接文件
4、创建成功之后我们用 ls -i 命令可以查看文件的inode 节点
此时我们可以看到两个文件inode节点相同;如下图
此时我们用stat命令无论查看text.txt文件,还是查看text_hard.txt 文件,文件的连接数都是一样的;
stat text.txt
stat text_hard.txt
文件的连接数::Links都是2
5、当我们删除源文件text.txt时,会有什么变化?
此时我们用命令 rm删除:rm text.txt
然后我们再用stat命令查看链接文件text_hard.txt :stat text_hard.txt
此时我们会发现文件的连接数减1
6、此时我们的baoji目录下已经没有text.txt文件了;
当我们通过命令cp 拷贝文件时,新文件text.txt 会产生一个新的Indoe;
cp text_hard.txt text.txt
7、接下来我们再来看一下文件类型:
硬链接:文件类型是普通类型(-)
8、此时我们用cat命令查看文件内容,发现两个文件的内容完全一样
cat text.txt
cat text_hard.txt
再来看看忘文件里追加内容会有什么不同?
用echo " ">>命令给文件追加内容
再查看一下硬链接文件内容cat text_hard.txt
可以发现链接文件的内容也发生变化,并且和源文件内容一样
9、既然可以对文件进行硬链接,那我们可以尝试给目录创建硬链接
ln baoji baoji1_h
通过实验发现,不能对目录进行硬链接;
二、软连接
1、通过命令 ln -s 源文件 链接文件 创建一个链接文件
2、用命令 ls -i 查看inode节点,发现软链接的inode节点不同
3、同样我们继续查看一下通过软链接产生的文件类型是什么类型
通过软链接产生的文件是链接文件(l)
4、我们查看一下文件内容:
发现文件内容完全相同
5、假设我们删除源文件,那么链接文件还能否找到?
rm text.txt
通过实验发现:如果我们删除源文件,则软链接会失败,访问提示找不到文件
6、能否对目录进行软链接:
ln -s class1 les1
通过实验发现,软链接可以对目录创建链接
区别:
软链接:
1)、软链接以路径的方式存在,类似于Windows中的快捷方式;
2)、软链接可以跨文件系统,硬链接不可以;
3)、软链接可以对一个不存在的文件名进行链接;
4)、软链接可以对目录进行连接;
5)、软链接不占用磁盘空间,源文件删除则软链接失效;
硬链接:
1)、硬链接以文本副本形式存在,但不占用实际空间;
2)、硬链接只能连接普通文件,不允许给目录创建硬链接;
3)、硬链接只能在同一个文件系统中才能创建