做什么

给文件 / 目录建链接。

两种链接

类型 创建 特点
软链接 / 符号链接 ln -s src link 像快捷方式,存路径;源删了变死链;可跨文件系统;可链接目录
硬链接 ln src link 同一份数据多个名字;源删了仍能访问;不能跨文件系统;不能链接目录

实战

# 软链接(更常用)
ln -s /var/log/nginx/access.log ~/nginx-log

# 硬链接
ln /home/file.txt /tmp/file-alt

# 改链接指向(先删再建)
ln -sfn /new/target ~/link        # -f 覆盖 -n 不进目录

# 看链接指向
ls -l link
readlink link
readlink -f link                  # 解析所有中间,给最终绝对路径

典型应用

# 1. 切换软件版本
sudo ln -sf /usr/local/bin/python3.12 /usr/local/bin/python

# 2. 把日志聚到一处
mkdir ~/logs
ln -s /var/log/nginx/access.log ~/logs/nginx.log
ln -s /var/log/mysql/error.log  ~/logs/mysql.log

# 3. dotfiles 用 git 管,用 ln 链接到家
mv ~/.bashrc ~/dotfiles/bashrc
ln -s ~/dotfiles/bashrc ~/.bashrc

  • 软链接是"小文件"——指向字符串路径。源移动 → 死链
  • 硬链接不能跨文件系统——/home/var 在不同分区时不行
  • 硬链接不能给目录建(防止环)—— 软链接可以
  • 死链检测:find /tmp -xtype l