软链接可访问目录而硬链接不可;软链接是存路径的独立文件,支持绝对或相对路径,目标不存在时也能创建,行首为l且显示→;硬链接因文件系统安全限制禁止链接目录,无法绕过。

软链接可以访问目录,硬链接不能访问目录。
软链接支持目录,用法直接
软链接本质是存路径的独立文件,对目标类型无限制。创建目录软链接只需加 -s 参数,并指定目标目录和链接名:
-
推荐用绝对路径:例如
ln -s /var/log /home/user/mylogs,之后访问/home/user/mylogs就等同于访问/var/log - 相对路径也可用,但需注意当前工作目录——比如在
/home/user下执行ln -s ../etc myetc,链接会指向/home/etc,容易出错 - 目标目录不存在时也能创建软链接,适合配置未就绪的预部署场景
硬链接无法链接目录,系统会拒绝
硬链接直接复用源文件的 inode,而 Linux 文件系统禁止为目录创建多个硬链接,这是出于防止循环引用和维护树状结构安全的设计约束:
- 执行
ln /some/dir hardlink_dir会报错:hard link not allowed for directory - 即使有 root 权限,也无法绕过该限制(ext4/xfs 等主流文件系统均强制禁止)
- 若需“多路径访问同一目录”,只能通过软链接、bind mount 或调整 PATH/alias 实现
验证链接类型与行为差异
创建后可用 ls -l 快速识别:
- 软链接行首为 l,末尾带
->显示目标路径,例如:lrwxrwxrwx 1 user user 9 Sep 25 15:00 mylogs -> /var/log - 硬链接行首为 -,权限列第二字段数字 ≥2(表示链接数),且无
->提示;但目录硬链接根本不会成功,所以看不到这类输出 - 用
ls -i可确认 inode:软链接与目标目录 inode 不同;硬链接只适用于文件,且两者 inode 相同











