Linux小议硬链接和软链接

硬链接:一个文件创建了它 的硬链接文件,那么它发生的变化,也将影响其硬链接文件。
在这里插入图片描述

软链接:类似与我们windows中桌面快捷方式,源文件被删除出后,其软链接文件也无法执行。
在这里插入图片描述
下面我将对上面说的理论进行证明:

[root@ ~]# cd /
[root@iZbp14z6qodoct0z6vgt6nZ /]# cd home
[root@iZbp14z6qodoct0z6vgt6nZ home]# ls
mrshun  redis  www
[root@iZbp14z6qodoct0z6vgt6nZ home]# touch f1
[root@iZbp14z6qodoct0z6vgt6nZ home]# ln f1 f2
[root@iZbp14z6qodoct0z6vgt6nZ home]# 
[root@iZbp14z6qodoct0z6vgt6nZ home]# ln -s f1 f3
[root@iZbp14z6qodoct0z6vgt6nZ home]# ll
total 12
-rw-r--r-- 2 root  root     0 Feb 26 15:52 f1
-rw-r--r-- 2 root  root     0 Feb 26 15:52 f2
lrwxrwxrwx 1 root  root     2 Feb 26 15:53 f3 -> f1
drwxr-xr-x 2 root  root  4096 Feb 26 10:51 mrshun
drwx------ 2 redis redis 4096 Feb 25 19:22 redis
drwx------ 3 www   www   4096 Feb 25 19:22 www
[root@iZbp14z6qodoct0z6vgt6nZ home]# echo "hello mrshun " >>f1
[root@iZbp14z6qodoct0z6vgt6nZ home]# f1
-bash: f1: command not found
[root@iZbp14z6qodoct0z6vgt6nZ home]# ls
f1  f2  f3  mrshun  redis  www
[root@iZbp14z6qodoct0z6vgt6nZ home]# cat f1
hello mrshun 
[root@iZbp14z6qodoct0z6vgt6nZ home]# cat f2
hello mrshun 
[root@iZbp14z6qodoct0z6vgt6nZ home]# cat f3
hello mrshun 
[root@iZbp14z6qodoct0z6vgt6nZ home]# rm -rf f1
[root@iZbp14z6qodoct0z6vgt6nZ home]# cat f2
hello mrshun 
[root@iZbp14z6qodoct0z6vgt6nZ home]# cat f3
cat: f3: No such file or directory
[root@iZbp14z6qodoct0z6vgt6nZ home]# ls
f2  f3  mrshun  redis  www
[root@iZbp14z6qodoct0z6vgt6nZ home]# touch f1
[root@iZbp14z6qodoct0z6vgt6nZ home]# ls
f1  f2  f3  mrshun  redis  www
[root@iZbp14z6qodoct0z6vgt6nZ home]# cat f1
[root@iZbp14z6qodoct0z6vgt6nZ home]# cat f2
hello mrshun 
[root@iZbp14z6qodoct0z6vgt6nZ home]# echo "he is cool" >>f1
[root@iZbp14z6qodoct0z6vgt6nZ home]# cat f1
he is cool
[root@iZbp14z6qodoct0z6vgt6nZ home]# cat f2
hello mrshun 
[root@iZbp14z6qodoct0z6vgt6nZ home]# ln f1 f4
[root@iZbp14z6qodoct0z6vgt6nZ home]# cat f4
he is cool
[root@iZbp14z6qodoct0z6vgt6nZ home]# ln f1 f2
ln: failed to create hard link ‘f2’: File exists

在这里插入图片描述
首先我们分别创建f1的硬链接f2和软链接文件f3

未提示错位,默认执行成功
在这里插入图片描述
使用ll查看该目录下的文件,我们发现f3变色了,说明软链接建立成功
使用echof1中写入 "hello mrshun" 假如前面的理论正确的情况下,那么f2也在几乎同一时刻被写入了相同的内容,访问f3可以访问到f1的内容。
下面我们来验证

在这里插入图片描述
访问f1 访问f2 f3结果如我们想象之中的样子

但是我认为这还是不具有说服力

因此我进行了删除关系的操作
在这里插入图片描述

我们看到在删除掉源文件f1后,硬链接文件f2仍然正常,而软链接文件f3却不能找到相关目录

结论:源文件对其硬链接文件的影响只在源文件改变的瞬间,源文件的存活不会影响其硬链接文件的存活,而源文件的存活或直接影响其软链接文件能否正常运行。

此时,我还有一个疑问:假如我再创建一个f1,那么f2还会认这个伪源文件吗?f3作为软链接文件还会认它的伪源文件吗?

带着这个疑问我又稍微深入一点进行了下面的测试

在这里插入图片描述
首先,创建一个f1,我们观察到f3的颜色恢复了正常,
紧接着查看f1 f2 ,发现f1为空,f2为之前输入的内容,这种现象我们也不意外,使用echo向f1中写入" he is cool"
下面我们看看这一操作会对f2 f3有何种影响

结果我也是很震惊:f2完全独立起来了,f1的改变也不会影响f2的内容,但是对f3的影响却有一点让人惊讶。

…未完待续…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr顺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值