在 Debian(以及大多数 Linux 发行版)里,软链接(symbolic link)本身不需要单独“备份内容”,只需要备份它的路径和指向目标即可。下面按常见场景给你几种做法。
tar 备份(推荐 ✅)tar 默认会保留软链接本身,而不是复制目标文件。
tar -cvpf backup.tar /path/to/dir
参数说明:
-c:创建归档-v:显示过程-p:保留权限-f:指定文件名tar -tvf backup.tar
你会看到类似:
lrwxrwxrwx user/user 0 2026-01-21 path/to/link -> /target/path
✅ 恢复后软链接仍然存在,指向不变。
如果你想只记录软链接本身(例如做迁移或重建):
find /path/to/dir -type l
find /path/to/dir -type l -printf "%p -> %l\n" > symlinks.txt
symlinks.txt 内容示例:
/etc/nginx/sites-enabled/default -> /etc/nginx/sites-available/default
ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
rsync 备份(适合目录同步)rsync 默认保留软链接。
rsync -a /source/dir/ /backup/dir/
参数说明:
-a:归档模式(包含 -l,保留软链接)⚠️ 注意:
cp -a source_link new_link
或批量:
cp -a /path/to/dir /backup/
-a 等价于 -dR --preserve=all
| 操作 | 结果 |
|---|---|
cp 不加参数 |
会复制目标文件 |
rsync -L |
会跟随软链接(变成普通文件) |
tar -h |
会解引用软链接 |
✅ 不要加 -L、-h 等参数
| 场景 | 推荐方式 |
|---|---|
| 整机/目录备份 | tar -cvpf |
| 目录同步 | rsync -a |
| 只记录软链接 | find -type l -printf |
| 精确迁移 | tar 或 rsync |
如果你愿意,可以告诉我:
/etc、/home 还是整个系统?我可以给你一条完全适合你环境的命令。