前言
在 Linux 文件系统中,软硬链接是管理文件与索引节点(inode)关系的重要机制。本文将在文件系统基础之上,详细讲解如何建立、理解以及应用这两种链接方式。
一、如何建立文件之间的软硬链接
软硬链接分为软链接和硬链接,两者在底层实现上有本质区别。建立链接的前提是目标文件必须已存在。
建立文件之间的软链接
使用 ln -s 命令创建软链接。其中 -s 选项代表 soft(柔软),即软链接。
ln -s 被软链接的文件 进行软链接的文件
执行后,可以使用 ls -l -i 查看 inode 编号。你会发现软链接文件和原文件拥有各自独立的 inode 编号。这意味着软链接是一个独立的文件,它有自己的 inode 结构和数据块。

建立文件之间的硬链接
使用 ln 命令(不带 -s 选项)创建硬链接。
ln 被硬链接的文件 进行硬链接的文件
观察 ls -l -i 的输出,硬链接文件和原文件会共用同一个 inode 编号。这说明硬链接文件没有属于自己的独立 inode,它只是原文件的一个别名。这也侧面印证了文件名并不属于 inode 中的文件属性,因为两个不同的文件名可以指向同一个 inode。

二、深入理解软硬链接
如何理解软链接
软链接是一个独立的文件,具有独立的 inode 和数据块。其数据块中保存的是指向目标文件的路径字符串。
如果要删除软链接文件,直接使用 unlink 即可。删除软链接不会影响原文件的内容。

由于软链接存储的是路径,我们可以通过软链接访问原文件的内容。例如,向原文件追加内容后,通过软链接读取也能看到新增的数据。

软链接的作用类似于 Windows 桌面上的快捷方式。Windows 应用程序的快捷方式本质上也是一个文件路径加上图形化界面的包装。选中快捷方式并打开文件所在位置,就能看到实际的应用程序存放路径。











