Linux的软链接跟Windows快捷方式一样?
一、ln 命令
ln 命令的基本信息:
命令名称:ln。
英文原意:make links between file。
所在路径:/bin/ln。
执行权限:所有用户。
功能描述:在文件之间建立链接。
1、ln 命令的基本格式如下:
[aaa@qq.com ~]# ln [选项] 源文件 目标文件
选项:
-s:建立软链接文件。如果不加“-s”选项,则默认建立硬链接文件
-f:强制。如果目标文件已经存在,则删除目标文件后再建立链接文件
如何创建硬链接?
[aaa@qq.com ~]# touch cangls
[aaa@qq.com ~]# ln /root/cangls /tmp/
分析:创建一个硬链接文件(cangls),使用 In 命令把/root/cangls文件硬连接到/tmp/cangls,/tmp/目录下没有写文件名,则目标文件名跟源文件名一致,也就是/root/cangls 和/tmp/cangls 是硬链接文件。
如何创建软链接?
[aaa@qq.com ~]# touch bols
[aaa@qq.com ~]# ln -s /root/bols /tmp/
分析:创建软链接时需要在选项中添加 "-s" 参数,不加是默认硬链接的,/root/bols 和/tmp/bols 是软链接文件。
2、硬链接与软连接的特征
硬链接特征:
源文件和硬链接文件使用相同的 Inode 和 Block
修改任意一个文件,另一个都改变
删除任意一个文件,另一个都能使用
硬链接标记不清,很难确认硬链接文件位置,不建议使用
硬链接不能链接目录
硬链接不能跨分区
特征分析:
在上一节中讲过,Inode中存放的是Inode号、时间、权限、位置,并没有存放文件名,文件本身的block块也没有存放文件名。文件名是存放在上一级目录的block块中,按照这样的存放规则,根目录的Inode号是固定的(Inode==2),因为不固定的话是找不到源头的,并且根目录的文件名也是存放在自己的block块中。
用一个例子来说明硬链接原理和过程,放一张自己画的丑图:
左边是主目录,中间是源文件,右边是目标文件。正常情况下是找到A目录的Ionde号进入A,在A中找到123这个文件的Inode号进入,就可以看到文件的内容。当源文件和目标文件建立硬连接后,目标文件就获得了原文件的Inode号,这个时候就可以获取到源文件的内容。
如果把Inode号比喻成教室的前后门。无论你把哪一个门给堵了,还是有一个门可以进来。这就是为什么删除任意一个文件,另一个文件都能使用。目录下可能会存在许多子目录和文件,如果给目录创建硬链接,那就要给所有文件创建硬链接,对系统负荷太大,linux就干脆禁止了。
软链接特征:
软链接和源文件使用不同的 Inode 和 Block
两个文件修改任意一个,另一个都改变
删除软链接,源文件不受影响;删除源文件,软链接不能使用
软链接没有实际数据,只保存源文件的 Inode,不论源文件多大,软链接大小不变
软链接的权限是最大权限 lrwxrwxrwx.,但是由于没有实际数据,最终访问时需要参考源文件权限
软链接可以链接目录
软链接可以跨分区
软链接特征明显,建议使用软连接
特征分析:
软链接完全可以把它理解为windows系统的快捷方式,删除快捷方式,源文件还能用,但是删除了源文件,快捷方式就不能用了。
由于使用了不同的Inode号和block块,没办法直接获取源文件的内容,所以这时就在软链接的block中存放源文件的Inode号,软链接就相当于起了中转的作用(指示牌),告诉源文件的方向在哪里。
软链接中不存放数据,只存放Inode号,源文件增大了,软链接的大小不会变,就像windows的快捷方式也不会变大。
实验图:
好了,今天就分享到这里,如果你喜欢这篇文章的话,请转发出去。如果你不喜欢这篇文章的话,请你先喜欢上这篇文章再转发出去,然后顺手点一个赞。谢谢!
【文末福利】
如今是资源泛滥的互联网的时代,如果你不想花时间去收集和整理你需要的一些资料,那就进来我的知识星球吧,星球中已经收录了很多csdn下载的资料、****、源代码、工程文件、资料手册、课程设计等等,总会有适合你哒。
承诺只需一次付费,到期后免费进入!
往期精彩回顾
史上最强的 (佰渡芸)下载工具,没有之一!
Linux和Windows有什么区别?
免费的微信群聊机器人,不懂编程也可以用!
linux—版本分类、系统安装、系统分区、格式化、文件设备名、挂载点、IP地址配置
END
▼更多精彩推荐,请关注我们▼
生活不止眼前的苟且,
还有课本里的诗和到不了的远方