首页 / Linux 命令行入门教程 / 19. ln:软链接与硬链接

Linux 命令行入门教程

19. ln:软链接与硬链接

本教程共 90 篇 · 第 19 篇

19. ln:软链接与硬链接

链接像是给文件起了个别名。Linux 有两种:软链接和硬链接。名字怪,弄懂就不难。

先说硬链接。它和原文件指向同一份真实数据。你删掉原文件,数据还在,因为硬链接还指着它。

echo "hello" > real.txt
ln real.txt hard.txt

ln 不加参数建的就是硬链接。用 ls -l 看第二列的数字(链接数),会从 1 变成 2。

软链接(也叫符号链接)则不同。它只存”指向哪”这个路径,像 Windows 的快捷方式。

ln -s real.txt soft.txt
ls -l soft.txt
# soft.txt -> real.txt

注意 -> 这个箭头,它说明这是软链接。软链接可以跨文件系统,也能指向目录;硬链接都不行。

两者关键差别

原文件被删时:硬链接仍能打开数据;软链接会”断链”,指向一个不存在的目标。

软链接能跨磁盘、能链接目录;硬链接只能在同一文件系统内,且不能链目录。日常用软链接更多。

典型用途

软件常把版本号长的路径链成稳定名,方便升级:

ln -s /opt/app-v2.3 /opt/app

这样脚本里写 /opt/app 就行,换版本只改链接,不用动所有配置。

ln -s /var/www/html ~/web

把深路径链到家目录,敲命令省事很多。

Tip

删软链接用 rm soft.txt 即可,它就是个普通文件。

Warning

删软链接别在名字后加斜杠:一旦写成 rm -rf soft.txt/-r 会顺着链接删掉目标目录里的内容,而不只是删链接本身。这个坑已经害过不少人。

小结:硬链接共享数据块,软链接只记路径。-s 建软链接,日常多用它。