在 Debian(以及大多数 Linux 系统)中,软链接(symbolic link)本身不需要单独“备份内容”,只需要备份其路径和指向关系。下面按常见场景给你几种实用方法。
tar 备份(推荐 ✅)tar 可以保留软链接,不会把目标文件重复打包。
tar -cvpf backup.tar /path/to/dir
参数说明:
-c:创建-v:显示过程-p:保留权限-f:指定文件名✅ 软链接会被原样保存
tar -xvpf backup.tar -C /
find 找出软链接并保存信息find /path/to/dir -type l > symlinks.txt
文件内容类似:
/path/to/dir/link1
/path/to/dir/link2
ls -l $(cat symlinks.txt)
或保存完整信息:
find /path/to/dir -type l -exec ls -l {} \; > symlinks_detail.txt
cp 时保留软链接cp -a /source /dest
或
cp -dR /source /dest
❌ 错误方式(会复制目标文件):
cp -r /source /dest
rsync 备份(服务器/增量备份常用)rsync -av --links /source/ /dest/
或显式写法:
rsync -av -l /source/ /dest/
✅ -l 表示保留软链接
ln -s /real/file link_name
while read link target; do
ln -sf "$target" "$link"
done < link_list.txt
tar / rsync / cp -a| 需求 | 推荐方式 |
|---|---|
| 备份整个目录 | tar -cvpf |
| 保留软链接复制 | cp -a / rsync -a |
| 只备份软链接关系 | find -type l |
| 恢复软链接 | 原样解包即可 |
如果你能告诉我:
/etc、/home 还是系统级?我可以给你一条完全定制的命令。