ln — 创建链接

ln 用于创建硬链接或符号链接(软链接)。

命令说明

硬链接是文件系统中指向同一 inode 的多个目录项,删除一个硬链接不影响其他链接。符号链接是一个特殊文件,包含指向另一个文件的路径。硬链接不能跨文件系统,不能指向目录;符号链接两者都可以。

应用场景

  • 为二进制文件创建符号链接(如 /usr/bin/python3 指向真实版本)
  • 为配置文件创建版本管理链接
  • 创建硬链接节省磁盘空间
  • 管理多版本软件切换

常用示例

示例 1:创建硬链接

bash
复制代码
ln original.txt hardlink.txt
ls -li original.txt hardlink.txt
plaintext
复制代码
1234567 -rw-r--r-- 2 alice staff 100 Aug 18 10:00 original.txt
1234567 -rw-r--r-- 2 alice staff 100 Aug 18 10:00 hardlink.txt

(注意两者有相同的 inode 号 1234567

示例 2:创建符号链接

bash
复制代码
ln -s /usr/local/nginx/nginx /usr/local/bin/nginx
ls -l /usr/local/bin/nginx
plaintext
复制代码
lrwxrwxrwx 1 root root 23 Aug 18 10:05 /usr/local/bin/nginx -> /usr/local/nginx/nginx

示例 3:创建目录符号链接

bash
复制代码
ln -s /var/www/html webroot

示例 4:强制创建(覆盖已存在的链接)

bash
复制代码
ln -sf /opt/new_python/bin/python3 /usr/local/bin/python3

help 参数详解

参数 长参数 说明
-s --symbolic 创建符号链接而非硬链接
-f --force 如果目标文件已存在,则删除后重新创建
-n --no-dereference 如果目标是符号链接,不要跟随它
-i --interactive 覆盖前询问确认
-v --verbose 显示每个创建操作的信息
-b --backup 覆盖前创建备份
-t DIR --target-directory=DIR 在指定目录中创建链接
-T --no-target-directory 将目标视为普通文件而非目录