在 Debian(以及大多数 Linux 发行版)中,软连接(symbolic link)迁移通常指把软连接本身或它指向的目标进行迁移。下面按常见场景说明。
ls -l /path/to/link
示例:
link -> /old/target
mv /path/to/link /new/path/link
✅ 特点:
/old/target 迁移到 /new/targetmv /old/target /new/target
ln -sf /new/target /path/to/link
✅ -f:强制覆盖已有软连接
✅ -s:创建软连接
如果原软连接使用的是相对路径,迁移时建议重建相对路径软连接。
ls -l /path/to/link
/opt/app/current -> ./releases/v1
ln -sf ./releases/v2 /opt/app/current
find /path -type l
find /path -type l | while read link; do
target=$(readlink "$link")
new_target=${target/old/new}
ln -sf "$new_target" "$link"
done
⚠️ 操作前建议备份
软连接指向绝对路径 /data/a,但 /data 被迁移到 /mnt/data
ln -sf /mnt/data/a /path/to/link
或
rm /path/to/link
ln -s /mnt/data/a /path/to/link
✅ 软连接:
❌ 软连接 ≠ 硬链接
硬链接不能跨文件系统,软连接可以
| 需求 | 命令 |
|---|---|
| 移动软连接 | mv link new_location |
| 修改指向 | ln -sf new_target link |
| 查看指向 | ls -l / readlink |
| 检查是否断链 | test -e link |
如果你能说明具体迁移场景(如:迁移到新磁盘、Docker、LNMP、网站目录、系统升级),我可以给你更精确的方案。