Linux系统中创建链接文件的核心命令是ln,通过该命令可以实现软链接和硬链接两种不同类型的链接文件创建,满足不同的文件管理需求。

ln命令的基本语法
ln命令的基础语法格式如下,根据是否添加-s参数可以区分创建的链接类型:
# 创建硬链接 ln 源文件路径 链接文件路径 # 创建软链接 ln -s 源文件路径 链接文件路径
软链接与硬链接的核心差异
两种链接类型的实现原理和特性有明显区别,具体对比如下:
| 对比项 | 软链接 | 硬链接 |
|---|---|---|
| 本质 | 独立的文件,存储源文件的路径 | 和源文件共享同一个inode号,是源文件的另一个入口 |
| 跨文件系统 | 支持 | 不支持 |
| 源文件删除影响 | 链接失效,无法正常访问 | 不影响访问,只是链接数减1 |
| 对目录的支持 | 支持创建目录的软链接 | 默认不支持创建目录的硬链接 |
实际操作示例
创建软链接示例
假设当前目录下有一个名为test.txt的文件,需要为其创建一个软链接文件test_link.txt,执行以下命令:
# 查看当前目录文件 ls # 输出:test.txt # 创建软链接 ln -s test.txt test_link.txt # 查看链接信息 ls -l # 输出:test_link.txt -> test.txt
软链接创建后,修改test_link.txt的内容和修改test.txt的效果一致,删除test.txt后,访问test_link.txt会提示文件不存在。
创建硬链接示例
同样以test.txt为例,创建硬链接test_hard.txt:
# 创建硬链接 ln test.txt test_hard.txt # 查看inode信息 ls -i test.txt test_hard.txt # 输出两个文件的inode号相同
此时删除test.txt,test_hard.txt依然可以正常访问,内容不会丢失,因为硬链接和源文件指向同一个文件存储块。
注意事项
- 创建软链接时,源文件路径最好使用绝对路径,避免软链接移动后因为相对路径失效无法访问。
- 创建链接文件时,如果链接文件路径已经存在,需要先删除原有文件,否则会报错。
- 不要对/proc、/sys等特殊文件系统下的文件创建硬链接,这些文件系统的文件不支持硬链接操作。
- 查看链接文件信息时,软链接的文件类型标识为l,硬链接和源文件的文件类型标识一致。
常见问题解答
有用户问为什么创建软链接后访问提示权限不足,通常是源文件本身没有对应的读权限,或者软链接的路径中存在没有执行权限的目录,需要对应调整权限后再访问。
还有用户问能不能给软链接再创建软链接,是支持的,只要最终的源文件路径有效,多层软链接也可以正常访问。