ln命令
ln命令的基本信息
- 命令名称:ln
- 英文原意:make links between file
- 所在路径:/bin/ln
- 执行权限:所有用户
- 功能描述:在文件之间建立链接
提示:以下是本篇文章正文内容,下面案例可供参考
一、ln命令的基本格式
[root@localhost ~]# ln [选项] 源文件 目标文件
选项:
-s:建立软链接文件。如果不加“-s”选项,则建立硬链接文件
-f:强制。如果目标文件已存在,则删除目标文件后再建立链接文件
二、使用步骤
1.硬链接
[root@localhost ~]# touch test1
[root@localhost ~]# ln /root/test1 /tmp/
#建立硬链接文件,目标文件没有写文件名,会和原名一致
#也就是/root/test1和/tmp/test1是硬链接文件
2.软链接
[root@localhost ~]# touch test2
[root@localhost ~]# ln -s /root/test2 /tmp/
#建立软链接文件
3.软链接和硬链接的特征
硬链接特征:
- 源文件和硬链接文件有相同的Inode和Block
- 修改任意一个文件,另一个都改变
- 删除任意一个文件,另一个都能使用
- 硬链接标记不清,很难确认硬链接文件位置,不建议使用
- 硬链接不能链接目录
- 硬链接不能跨分区
软连接特征:
- 源文件和软链接文件有不同的Inode和Block
- 两个文件任意修改一个,另一个都改变
- 删除软链接文件,源文件不受影响。删除源文件,软链接文件不能使用
- 软链接文件没有实际数据,只保留源文件的Inode,不论源文件多大,软链接文件大小不变
- 软链接的权限是最大权限lrwxrwxrwx,但没有实际数据,最终访问时需要参考源文件权限
- 软链接可以链接目录
- 软链接可以跨分区
- 软链接特征明显,建议使用软链接
三、原理
1.Linux中文件如何找到?
Linux下每个分区都可以理解为分成了2部分。小部分用来放I节点(Inode),大部分用来放Block块。
下边以根分区/和根分区下的root目录下的abc文件(/root/abc)举例,方便理解
找到文件/root/abc的过程:
1.根据根目录 /的I节点号2(固定),找到根目录的I节点
2.通过根目录的I节点当中的保存位置找到根目录的Block,从根目录/的Block中的root文件名找到/root目录的I节点号
3.根据I节点号找到/root的I节点,通过保存位置找到/root目录的Block,从/root目录的Block块中找abc的文件名和I节点号
4.通过abc的I节点号找到abc的I节点,根据abc的I节点中的保存位置找到abc的Block块,读取abc文件的Block块实际保存的数据。
2.硬链接原理
以源文件/root/abc和硬链接文件/tmp/abc_h为例
3.软链接原理
软链接完全可以理解成Windows中的快捷方式,以源文件/root/bcd和软链接文件/tmp/bcd_s为例
总结
本文仅仅简单介绍了ln命令的使用和软硬链接的原理。
1.软链接必须写绝对路径。
2.建议使用软链接。
3.Linux中创建软链接的原因大多是为了符合管理员的习惯。旧版本的一些文件在系统更新后改了位置,这时候软链接即照顾了升级需要,又照顾了管理员的使用习惯。