linux初学者笔记(5):链接命令
命令
ln -s [原文件] [目标文件]
语义:生成链接文件。
加了-s意思是生成软链接,没加就是硬链接
下面解释一下软链接和硬链接还有这个命令的用法。
链接文件,可以近似理解为windows下的快捷方式,但是软硬链接是有区别的。
先说硬链接
1.拥有相同的i节点和存储block块,可以和原文件看做同一个文件
2.可通过i节点识别
3.不能跨分区
4.不能针对目录使用
解释:
我们知道既然要存文件,那么就要有分区。所以先建立分区,格式化,形成一个个数据块;然后就是建立一个分区表,用来记录文件的基本信息。到某个时候,你想找某个文件的时候,就是通过分区表找到文件数据再分区中的位置。
而硬链接就是为一个文件创建它的别名文件,比如原文件叫做file1,那么我在ln file1 file2, 执行之后,
问题1:请说出硬链接和原文件的异同点。
1.相同点:拥有相同的基本信息(inode,权限,修改时间等等),其中一个文件内容修改了,另一个文件内容也会修改,但是这样说也不够准确,只是“看上去”像是这样的情况。其实两个文件名都指向分区中同一个位置,而数据修改是保存在分区中数据存取的位置的,所以,一个文件修改,另一个也会“修改”。
2.不同点:名字不同(如果在不同目录下就可以相同)
问题2:创建完硬链接文件,原文件和链接文件都发生了什么变化?
计数器增1
现在说说软链接
软链接,ln -s,其实就是和win下的快捷方式道理差不了多少。
1.软链接拥有自己的i节点和block块,而这个block块中只保存原文件的文件名和i节点,这样访问软链接,其实就是找到原文件的名字和i节点,从而在分区中找到原文件的数据。
2.软链接的文件权限都是lrwxrwxrwx,注意第一位l是软链接的意思
3.修改软链接文件或者原文件,另一个也同样修改,道理见第一点。
4.删除原文件,软链接不可用
问题3:请说出软链接和原文件的不同点。
1.inode
2.权限
3.修改时间
4.用ll,原文件名没什么,但是软链接文件会标识出原文件名。
问题4:请说出上面图中不好的命令写法习惯
这个习惯就是软链接命令的路径编写问题了,应该用绝对路径,用相对路径会有问题
但是,在同一目录下创建软链接,却没有问题