【Linux 命令】 rsync 目录覆盖软链接,保持软链接不变并同步目录内容
需求:有两个相同文件名的目录需要使用其中一个目录覆盖另外一个
问题: 被覆盖目录下存在软链接,但在源目录下软链接是一个目录
需要解决的方案: 要求将原目录里和被覆盖目录里冲突的目录文件复制到B的软链接文件下
目录结构:
被覆盖目录:
/home/A
├── SubDir
│ ├── File_b
│ └── File_c
└── SubDir_A -> SubDir
源文件目录:
/tmp/A
└── SubDir_A
├── File_a
├── File_b
└── File_c
文件内容:
源文件:
被覆盖文件:
图解:
解决方案:
rsync -K -a 源目录 被覆盖目录
结果:
原理:
-K, --keep-dirlinks treat symlinked dir on receiver as dir(将被覆盖的链接视为目录)