linux连接命令ln
linux连接命令ln详细介绍
在 Linux 中,ln 命令用于创建文件或目录的链接,分为硬链接(Hard Link)和软链接(Symbolic Link,符号链接),以下是核心用法和区别:
一、基础语法
bash
选项 源文件 目标链接
- 硬链接(默认):
ln 源文件 硬链接文件 - 软链接(符号链接):
ln -s 源文件 软链接文件
二、核心区别
| 特性 | 硬链接 | 软链接 |
|---|---|---|
| 本质 | 同一文件的多个名称(共享 inode) | 独立文件,存储目标路径的引用 |
| 跨分区 | 不支持(inode 仅限同文件系统) | 支持 |
| 指向目录 | 不允许(防止递归风险) | 允许 |
| 删除影响 | 删除源文件,链接仍有效 | 删除源文件,链接失效(变成断链) |
| 文件类型 | 与源文件相同(无特殊标识) | 类型为 l(通过 ls -l 可见) |
三、常用场景与示例
1. 硬链接(适合文件备份 / 节省空间)
bash
/data/file.txt /backup/file_hard.link
/data/file.txt
/backup/file_hard.link
2. 软链接(适合快捷访问 / 系统服务)
bash
/usr/local/apache2 /var/www/apache
/app/v2.3/service.sh /usr/bin/service
3. 批量创建链接(结合通配符)
bash
/data/*.txt ./
四、关键选项
| 选项 | 说明 |
|---|---|
-s |
创建软链接(默认是硬链接) |
-f |
强制覆盖已存在的目标链接 |
-v |
显示链接创建过程(如:创建符号链接 'a.link' → 'a.txt') |
-d |
允许为目录创建硬链接(需 root 权限) |
五、注意事项
- 硬链接限制:不能对目录创建硬链接(避免文件系统递归)。
- 软链接失效:若源文件被移动或删除,软链接会变成断链(可通过
broken link to ...识别)。 - 权限继承:硬链接与源文件权限完全一致;软链接权限仅控制自身访问(通常为
lrwxrwxrwx)。 - 跨设备问题:硬链接不能跨越不同文件系统(如从
/dev/sda到/dev/sdb)。
六、诊断技巧
- 查看链接类型:
ls -l 目标文件(软链接会显示-> 源路径)。 - 查看 inode:
ls -i 源文件 链接文件(硬链接 inode 相同,软链接不同)。 - 修复断链:删除软链接后重新创建(
rm 断链文件 && ln -s 新源路径 断链文件)。
通过合理使用 ln,可以灵活管理文件路径、节省存储或简化服务部署。根据场景选择硬链接或软链接是关键!