大话软链接与硬链接

软链接:

ln -s 源路径  目标路径

特点:

1.就相当于windows中的快捷方式;

2.删除链接文件,源文件无影响;

3.删除源文件,链接文件失效;

4.修改源文件/链接文件,内容都变;

5.源文件及目标文件inode号不一样;

6.软链接是指向文件名的。

 

硬链接:

ln  源路径  目标路径

特点:

1.删除链接文件,源文件无影响;

3.删除源文件,链接文件无影响;

4.修改源文件/链接文件,内容都变;

5.源文件及目标文件inode号一样;

6.硬链接文件表面看起来是个普通文件。

 

什么原理?

首先得明白每一个文件都有一个inode号,一个inode号会对应一个具体的block块存储空间;

需要注意的是:软链接文件的b.txt的inode号是指向文件名a.txt的

 

为什么软链接可以跨文件系统,硬链接不行?

一个分区对应一个文件系统,软链接指向的是文件名,不同分区(文件系统)下可以使用相同的文件名,例如:

/boot 在分区 /dev/sda1   在文件夹/boot新建a.txt  touch /boot/a.txt

/test 在分区 /dev/sdb3    在文件夹/test 新建a.txt  touch /test/a.txt

ln -s /boot/a.txt /test/a.txt  完全没问题   /test/a.txt 就是 /boot/a.txt的软链接,即使两个文件重名了,因为这个两个文件根本就不在一个分区上。就像我身上长的东西和你身上长的东西就不是一个东西。

你现在往/test/a.txt里面写东西,echo '123' > /test/a.txt 实际内容被写到 /boot/a.txt里面去了。始终要注意软链接是指向文件名的,本质上是要找到一个inode然后对应到一个block块。

 

硬链接的本质是两个文件同时指向同一个inode号,来找到同一个block块,你现在想跨分区去建,即使你的inode号一样,不能分区的相同inode号其实是毫不相干的。

 

你可以对目录做硬链接软链接,目录也是文件。

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值