Linux学习笔记之关于硬链接和软链接的简单理解

关于硬链接和软链接的简单理解:

2021-2-19

1、众所周知,Linux里一切皆文件,所以不妨理解一下文件Linux中的特点:

  • 我们通过文件名打开文件(过程见下图)时,需要途径inode,然后才能访问到文件的真实内容,即文件数据块data blocks:

  • 移动和重命名文件并不会改变文件的索引节点号inode。

Linux引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。

2、硬链接和软链接有啥区别呢,说了半天inode,到底和inode有啥关系呢,整这个有啥用呢?哈哈哈哈疑问三连(

来来来一个个解决一下

(1)硬链接和软链接分别是什么,与inode有什么联系?

硬链接:一个文件即一个inode号对应多个文件名。

对文件创建硬链接:

硬链接可由命令link或link创建。
如下图对硬链接file1创建新文件名newfile。
创建后file1和newfile有相同的inode号。
#ln命令可以同步对文件的修改。
link file1 newfile
ln file1 newfile
注意:
1、Linux创建目录后,硬链接数为2。因为每创建一个目录,就会在创建的目录下默认新增…上级目录的硬链接和.当前目录的硬链接。

软链接的创建:

ln -s 源文件 目标文件
注意:
1、软链接的用户数据可以是另一个软链接的路径。
2、创建软链接的时指向路径时最好使用绝对路径。避免使用相对路径后,软链接被移动后,该软链接成为一个死链接。

(2)区别:

区别一:能否对不存在的文件进行创建
硬链接只能对已存在的文件进行创建;
软链接可以对一个不存在的文件进行链接。
区别二:能否对目录进行创建
硬链接只能对文件创建,不能对目录进行创建;
软链接可以对目录进行连接。
区别三:删除时的区别
所有硬链接都指向同一个I节点。删除链接中的文件,对同样inode号的其他文件没有影响,只要链接数>0,文件就一直存在。
软链接不适用I节点作为文件指针,而是用文件路径名作为指针。删除链接文件对于源文件没有影响,但是删除源文件时,链接文件就会找不到要指向的文件。
区别四:是否占用空间
硬链接通常情况下不会占用inode和磁盘空间大小。
软链接有自己的inode,在磁盘有一小片空间存放路径。
区别五:能否跨文件系统
硬链接不能跨文件系统建立。不同文件系统中可能会有相同的inode。创建硬链接后,链接数会增加。
软连接可以跨文件系统建立。创建软链接后,链接数不会增加。

(3)inode和链接的作用:

i.当文件名包含特殊字符时,可以直接通过指认inode号来识别。
ii.我们可以将链接理解为Windows中的快捷方式,便于更好地共享文件。
iii.硬链接可以便于“误删”,便于“随心”移动。只有最后一个链接被删除后,文件的数据块和目录的链接才会被释放。

网站链接传送门

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值