Linux的软链接跟Windows快捷方式一样?

一、ln 命令

ln 命令的基本信息:

  • 命令名称:ln。

  • 英文原意:make links between file。

  • 所在路径:/bin/ln。

  • 执行权限:所有用户。

  • 功能描述:在文件之间建立链接。

 

1、ln 命令的基本格式如下:

[root@localhost ~]# ln [选项]  源文件  目标文件

选项:

-s:建立软链接文件。如果不加“-s”选项,则默认建立硬链接文件

-f:强制。如果目标文件已经存在,则删除目标文件后再建立链接文件


如何创建硬链接?

[root@localhost ~]# touch  cangls 

[root@localhost ~]# ln   /root/cangls    /tmp/

分析:创建一个硬链接文件(cangls),使用 In 命令把/root/cangls文件硬连接到/tmp/cangls,/tmp/目录下没有写文件名,则目标文件名跟源文件名一致,也就是/root/cangls 和/tmp/cangls 是硬链接文件。


如何创建软链接?

[root@localhost ~]# touch bols 

[root@localhost ~]# 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的快捷方式也不会变大。

实验图:

 

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值