温馨提示×

怎样备份ubuntu软连接

小樊
42
2026-10-04 02:51:13
栏目: 智能运维

在 Ubuntu(及其他 Linux 系统)中,**软链接(symbolic link,软连接)**本身只是一个指向文件/目录的特殊文件。备份软链接时,关键有两点:

  1. 保留软链接本身(而不是把目标文件复制过来)
  2. 恢复后链接关系仍然正确

下面按常见场景说明。


一、用 cp 备份(保留软链接)

1. 只复制软链接本身

cp -a /path/src /path/backup

或

cp -P /path/src /path/backup

说明:

  • -a:归档模式(保留权限、时间戳、软链接等)
  • -P:不跟随软链接(默认 cp 会跟进去)

❌ 错误示例(会变成复制目标文件):

cp /path/src /path/backup

二、用 rsync 备份(推荐)

保留软链接

rsync -a /path/src/ /path/backup/

说明:

  • -a = -rlptgoD
  • 默认 rsync 不会展开软链接

如果你想“把软链接指向的内容也备份”

rsync -aL /path/src/ /path/backup/

(-L 会跟随软链接)


三、用 tar 打包备份(最常用)

保留软链接

tar -czvf backup.tar.gz /path/to/dir

tar 默认就会保留软链接

验证软链接是否在 tar 中

tar -tvf backup.tar.gz | grep yourlink

四、只备份“软链接本身”(不备份目标)

例如你有一堆软链接:

find /path -type l > symlinks.txt

恢复时:

while read link; do
  src=$(readlink "$link")
  ln -s "$src" "$link"
done < symlinks.txt

适合:

  • 软链接指向外部设备
  • 大量软链接但目标不重要

五、恢复注意事项

  • 恢复路径要和原来一致,否则软链接可能失效
  • 可用以下命令检查失效软链接:
find /path -xtype l

六、总结建议

场景 推荐方式
整机/目录备份 rsync -a
打包迁移 tar -czvf
仅保留链接关系 find -type l
Docker / 配置备份 cp -a

如果你能说一下:

  • 是系统目录还是用户目录
  • 是否跨机器
  • 是否包含 Docker / 家目录

我可以给你更精确的命令。

0 踩