1.软连接与硬连接的区别
软链接和硬链接的区别主要有:概念、inode、文件属性、创建方式和限制、链接数目
1) 概念
硬链接就是一个文件的一个或多个文件名。所谓链接无非是把文件名和计算机文件系统使用的节点号链接起来。可以用多个文件名与同一个文件进行链接,这些文件名可以在同一目录或不同目录。
软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。
2) inode
硬链接源文件和链接共用一个 inode 号,就像一个文件有多个文件名,说明它们是同一个文件,删除一个硬链接文件并不影响其他有相同 inode 号的文件。
软链接源文件和链接文件拥有不同的 inode 号,表明它们是两个不同的文件。删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。
3) 文件属性
硬链接没有写出来,因为本质上硬链接文件和源文件是完全平等关系。
软链接明确写出了是链接文件
4)创建方式和限制
硬链接只能对已存在的文件进行创建,硬链接不支持跨文件系统建立。
软链接可对不存在的文件或目录创建,软链接支持跨文件系统建立。
5)链接数目
硬链接文件显示的链接数目跟源文件是一致的。
软链接文件显示的链接数目不会增加,文件大小是不一样的。
延伸阅读
硬链接和软链接创建都是使用 ln 指令,默认创建的是硬链接,
```bash
ln hello.txt link_hello.txt # 创建硬链接
ln -s hello.txt link_hello.txt # 创建软链接