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 建软链接,日常多用它。