Linux学习打卡第五天(有关Linux存储文件的方式,ln命令以及软链接,硬链接及其区别)

Linux存储文件的方式

在Linux系统中,我们所看到的文件是指向索引节点的指针,在创建文件时,系统会给文件一个索引节点号,而用户会给它命名一个名字,两者都存储在存储器上的索引节点表中,可以通过文件名引用某个文件, Linux系统会根据其名称引用这个文件,当系统获得其索引节点中的信息后,就可以对该文件进行操作,我们可以用ls -i 命令来查看文件的索引节点号,如下图:
Linux学习打卡第五天(有关Linux存储文件的方式,ln命令以及软链接,硬链接及其区别)
如上图中除了diary.mobi之外,都是文件夹,也就是说,在第一天中说的"一切皆文件",可以找到原因了

ln命令

如果你想要在不同的位置放置同一个文件,那么可以用到ln命令(即link的简写),目前存在两种链接:硬链接和软链接,硬链接可以用ln 原始文件 链接名来创建,
Linux学习打卡第五天(有关Linux存储文件的方式,ln命令以及软链接,硬链接及其区别)
如图中箭头所示行,只能在同个文件中选取文件创建链接,同时可见,两个文件的索引节点相同,ls -l命令下所示的文件前面的数字由2变成3,这个数字是指这个文件的硬链接数
下面说一说软连接的一种创建格式:ln -s 源文件 链接名称,不想改名字的话可以直接去掉链接名称这个选项或者把它用.代替,如下图:
Linux学习打卡第五天(有关Linux存储文件的方式,ln命令以及软链接,硬链接及其区别)
我们再来看看这个文件ls -l的结果
Linux学习打卡第五天(有关Linux存储文件的方式,ln命令以及软链接,硬链接及其区别)
这个链接显示的是指针,指向原来的文件,我们再来看看ls -i指令的结果:
Linux学习打卡第五天(有关Linux存储文件的方式,ln命令以及软链接,硬链接及其区别)
可见,两者的索引节点不同,另外,软链接还可以指向目录,见下表:

类型 硬链接 软链接
链接指向 索引节点 名称
链接到目录
跨文件系统链接
移动源文件 链接有效 链接断开
更改目标的名称 链接有效 链接断开
删除链接 目标仍然存在* 目标仍然存在*
链接的索引节点 与目标相同 与目标不同
存储空间 -4KB

*除非是最后一个删除的节点,或者运行进程已打开文件