Linux怎么创建文件的软链接和硬链接

浅强吖_7528

浅强吖_7528

2026-10-06

782人浏览

原创

ln命令创建软链接必须加-s,否则默认建硬链接;软链接是独立文件存路径字符串,可跨文件系统并指向目录,错误时成悬空链接;硬链接共享inode,不可跨文件系统且不能指向目录,删除原文件不影响访问。

linux怎么创建文件的软链接和硬链接

ln 命令是唯一需要掌握的工具,软链接和硬链接都靠它,但参数和行为差异极大——用错不仅链接无效,还可能掩盖数据误删风险。

创建软链接必须加 -s,否则默认建的是硬链接

这是最常踩的坑:执行 ln /path/to/file linkname 时没加 -s,结果建了个硬链接,而你本意是快捷方式。软链接本质是独立文件,存的是路径字符串;硬链接则是同一 inode 的另一个名字。

  • 正确创建文件软链接:ln -s /home/user/doc.txt ~/desktop/doc_link
  • 正确创建目录软链接:ln -s /var/log/nginx/ ~/logs(硬链接不能链接目录)
  • 目标路径建议用绝对路径,避免相对路径在不同工作目录下失效
  • 如果 linkname 已存在,ln -s 会报错 File exists,加 -f 可强制覆盖

硬链接只能用于文件,且不能跨文件系统

硬链接共享 inode,所以必须和原文件在同一个挂载点(比如都在 / 或都在 /home)。一旦尝试对目录或跨分区文件建硬链接,ln 会直接拒绝:

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载
  • 对目录执行 ln /tmp/mydir harddir → 报错:hard link not allowed for directory
  • 对挂载在 /mnt/usb 上的文件执行 ln /mnt/usb/file.txt link → 报错:Invalid cross-device link
  • 成功建硬链接后,ls -li 会显示两行相同 inode 编号,第二列链接数(如 2)也会增加

ls -l 是验证链接类型最直接的方式

不用记理论,看输出就能立刻分辨:

  • 软链接行首是 l(小写 L),末尾带箭头:lrwxrwxrwx 1 user user 12 Oct 1 10:00 soft_link -> target.txt
  • 硬链接行首是 -,权限后第二列数字 ≥2,且无箭头:-rw-r--r-- 2 user user 4096 Oct 1 10:00 file.txt 和 -rw-r--r-- 2 user user 4096 Oct 1 10:00 hard_link
  • 注意:软链接文件本身可被 rm 删除,但不影响原文件;硬链接被删,只减少 inode 引用计数,原内容仍在,直到所有硬链接都被删完

删除原文件后,软链接变“悬空”,硬链接仍可用

这是两者行为分水岭,直接影响数据安全设计:

  • 删了 target.txt,再 cat soft_link → 报错:No such file or directory,ls -l 中链接名会变红并闪烁(终端提示)
  • 删了 file.txt,cat hard_link 依然能读出内容,因为数据块和 inode 未被释放
  • 因此,硬链接适合做轻量级备份(不占额外空间),但无法替代真正备份;软链接适合组织项目结构、切换版本路径,但必须确保源路径稳定

软链接和硬链接不是“选哪个更好”,而是“解决什么问题”。混淆它们的底层机制(inode 共享 vs 路径字符串存储),就容易在脚本自动化、部署路径切换或日志归档中埋下静默故障。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux系统管理 linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3850

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3313

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2453

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5890

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5542

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3273

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2765

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2979

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习