在 Debian(以及大多数 Linux 系统)里,“软连接(符号链接,symlink)”本身只是文件,备份时和普通文件处理方式不同:
默认 cp / rsync / tar 的行为会决定你是“备份软连接本身”还是“备份它指向的内容”。
下面按常见场景说明。
tar -czpf backup.tar.gz /path/to/dir
关键参数:
-h 不要加(加了会跟随软连接)查看是否保留:
tar -tzf backup.tar.gz
tar -czphf backup.tar.gz /path/to/dir
-h:解引用软连接⚠️ 适合“软连接指向的数据也要一起备份”的情况
rsync -a /source/ /backup/
-a 包含 -l,保留符号链接rsync -aL /source/ /backup/
-L:跟随软连接适合迁移系统或审计:
find /path/to/dir -type l > symlinks.txt
查看软连接指向:
ls -l /path/to/dir
恢复示例:
while read link target; do
ln -s "$target" "$link"
done < symlinks.txt
常用组合:
tar -czpf rootfs.tar.gz \
--exclude=/proc \
--exclude=/sys \
--exclude=/dev \
/
✅ 软连接会被完整保留
| 问题 | 原因 |
|---|---|
| 恢复后变成普通文件 | 用了 -h / -L |
| 权限不对 | 没用 -p 或 -a |
| 循环软连接 | 用 find -follow 会报错 |
✅ 只备份系统/配置:保留软连接
rsync -a
tar -cpf
✅ 备份数据:跟随软连接
rsync -aL
tar -chpf
如果你能告诉我:
我可以给你一条精确命令。