linux之软连接和硬连接的区别

举报
入门小站 发表于 2021/09/26 22:51:12 2021/09/26
【摘要】 硬连接硬链接是通过索引节点进行的链接。在Linux中,多个文件指向同一个索引节点是允许的,像这样的链接就是硬链接。硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建。如果删除硬链接对应的源文件,则硬链接文件仍然存在,而且保存了原有的内容,这样可以起到防止因为误操作而错误删除文件的作用。由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他...

硬连接

硬链接是通过索引节点进行的链接。在Linux中,多个文件指向同一个索引节点是允许的,像这样的链接就是硬链接。硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建。如果删除硬链接对应的源文件,则硬链接文件仍然存在,而且保存了原有的内容,这样可以起到防止因为误操作而错误删除文件的作用。由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件。

  • 通过ln rumenz.txt rumenz123.txt创建
  • 不能对目录进行创建硬链接,只可对文件创建。
  • 以文件副本的形式存在,但不占用实际空间。
  • 文件名有相同的 inode 及 data block。
  • 只有在同一个文件系统中才能创建,不能交叉文件系统进行硬链接的创建。
  • 删除其中一个硬链接文件并不影响其他有相同inode号的文件。
  • 只能对已存在的文件进行创建。

适用场景

用于镜像数据文件,防止误删

软连接

软链接(也叫符号链接)与硬链接不同,文件用户数据块中存放的内容是另一文件的路径名的指向。软链接就是一个普通文件,只是数据块内容有点特殊。软链接可对文件或目录创建。
软链接主要应用于以下两个方面:一是方便管理,例如可以把一个复杂路径下的文件链接到一个简单路径下方便用户访问;另一方面就是解决文件系统磁盘空间不足的情况。例如某个文件文件系统空间已经用完了,但是现在必须在该文件系统下创建一个新的目录并存储大量的文件,那么可以把另一个剩余空间较多的文件系统中的目录链接到该文件系统中,这样就可以很好的解决空间不足问题。删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。

  • ln -s rumenz.txt rumenz123.txt
  • 是存放另一个文件的路径的形式存在。
  • 可交叉文件系统创建 ,硬链接不可以。
  • 可以对目录进行链接。
  • 有自己的文件属性及权限等。
  • 可对不存在的文件或目录创建软链接。
  • 软链接可对文件或目录创建。
  • 创建软链接时,链接计数 i_nlink 不会增加。
  • 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。

img

无论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

适用场景

  • 便于文件管理,将复杂路径下的文件链接到简单路径下访问。
  • 解决某个目录空间不足问题。

怎么查看一个文件的硬连接文件

> ls -il
total 8
1806727 -rw-r--r-- 2 root root 137 May  6 20:14 one.txt
1806727 -rw-r--r-- 2 root root 137 May  6 20:14 tow.txt

硬连接文件的inode number是一样的.可以看出由于one.txttow.txt互为硬链接, 所以他们的inode number相同.

> find / -inum 1806727

查看整个文件系统中有哪些文件是one.txt的硬连接.

怎么查看一个文件的软连接

> find -type l -exec ls -l {} \;| grep 'rumenz.txt'

知道一个软连接文件,怎么找到该文件的真实路径

// realpath 软连接文件
> realpath /etc/rc.local
/etc/rc.d/rc.local

原文链接:https://rumenz.com/rumenbiji/linux-soft-hard-link.html
微信公众号:入门小站

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。