在 Debian(以及大多数 Linux 发行版)中,软连接(symbolic link / symlink)本身不能直接“同步”内容,但可以通过同步软连接指向的目标,或者保留软连接本身来实现你想要的效果。下面按常见场景说明。
ln -s /data/www/html /var/www/html
rsync(推荐)同步软连接指向的真实内容
rsync -av /var/www/html/ /backup/www/
-a会跟随软连接(默认行为)
同步时保留软连接本身(不跟随)
rsync -av --no-dereference /var/www/html/ /backup/www/
| 参数 | 作用 |
|---|---|
-a |
归档模式 |
--no-dereference |
不跟随软连接 |
-L |
强制跟随软连接 |
cpcp -a /var/www/html /backup/
-a = -dR --preserve=all/data/
├── logs -> /var/log/app
├── conf -> /etc/app
rsync -av --no-dereference /data/ /backup/data/
✅ 结果:
/backup/data/logs -> /var/log/app
/backup/data/conf -> /etc/app
如果你只是想复制软连接文件本身:
cp -P /path/to/symlink /dest/
或
rsync -av --no-dereference symlink /dest/
原因:使用了 -L 或默认跟随了软连接
✅ 解决:加 --no-dereference
原因:软连接是绝对路径 ✅ 建议:
ln -s ../data/logs logs
或使用相对路径
crontab -e
*/10 * * * * rsync -av --no-dereference /data/ /backup/data/
Debian 中同步软连接,关键看你是想同步“指向的内容”还是“软连接本身”
✅ 推荐用rsync -av --no-dereference
如果你能说明具体场景(比如:
我可以给你更精确的命令。