Linux学习打卡第五天(有关Linux存储文件的方式,ln命令以及软链接,硬链接及其区别)
Linux存储文件的方式
在Linux系统中,我们所看到的文件是指向索引节点的指针,在创建文件时,系统会给文件一个索引节点号,而用户会给它命名一个名字,两者都存储在存储器上的索引节点表中,可以通过文件名引用某个文件, Linux系统会根据其名称引用这个文件,当系统获得其索引节点中的信息后,就可以对该文件进行操作,我们可以用ls -i
命令来查看文件的索引节点号,如下图:
如上图中除了diary.mobi之外,都是文件夹,也就是说,在第一天中说的"一切皆文件",可以找到原因了
ln命令
如果你想要在不同的位置放置同一个文件,那么可以用到ln命令(即link的简写),目前存在两种链接:硬链接和软链接,硬链接可以用ln 原始文件 链接名
来创建,
如图中箭头所示行,只能在同个文件中选取文件创建链接,同时可见,两个文件的索引节点相同,ls -l命令下所示的文件前面的数字由2变成3,这个数字是指这个文件的硬链接数
下面说一说软连接的一种创建格式:ln -s 源文件 链接名称
,不想改名字的话可以直接去掉链接名称这个选项或者把它用.代替,如下图:
我们再来看看这个文件ls -l的结果
这个链接显示的是指针,指向原来的文件,我们再来看看ls -i指令的结果:
可见,两者的索引节点不同,另外,软链接还可以指向目录,见下表:
类型 | 硬链接 | 软链接 |
---|---|---|
链接指向 | 索引节点 | 名称 |
链接到目录 | 否 | 是 |
跨文件系统链接 | 否 | 是 |
移动源文件 | 链接有效 | 链接断开 |
更改目标的名称 | 链接有效 | 链接断开 |
删除链接 | 目标仍然存在* | 目标仍然存在* |
链接的索引节点 | 与目标相同 | 与目标不同 |
存储空间 | 无 | -4KB |
*除非是最后一个删除的节点,或者运行进程已打开文件