rsync同步时追踪符号链接

  rsync同步时默认会跳过符号链接文件,当你加上了-l参数,或者-a参数(包含-l参数)时,rsync会一并同步该符号链接,但是同步的仅是符号链接文件本身,并不是符号链接指向的真实文件。而加上-L参数则会将指向的真实文件一并同步过去。

实例

  原数据目录结构:

1
2
3
4
5
6
.
├── bar
│   └── data -> ../foo/1.txt
└── foo
├── 1.txt
└── 2.txt

  默认参数,这里偷懒直接使用-a参数后使用--no-排除-l参数,跳过了符号链接:

1
2
3
4
5
6
rsync -avz --no-l data/ backup/
.
├── bar
└── foo
├── 1.txt
└── 2.txt

  带-l参数,一并同步符号链接:

1
2
3
4
5
6
7
rsync -avz data/ backup/
.
├── bar
│   └── data -> ../foo/1.txt
└── foo
├── 1.txt
└── 2.txt

 带-L参数,追踪符号链接:

1
2
3
4
5
6
rsync -avzL data/ backup/
├── bar
│   └── data # The content same as ../foo/1.txt
└── foo
├── 1.txt
└── 2.txt