我应该使用什么标志来使 rsync 删除文件 /dest/foo
并将其替换为目录 /src/foo
?
另外,反过来,替换目录 /dest/foo
和文件 /src/foo
?
答案1
你有
$ tree -F
.
|-- dest/
| `-- foo
`-- src/
`-- foo/
3 directories, 1 file
这样做rsync -r src/foo dest
会将文件替换dest/foo
为目录src/foo
:
$ rsync -r src/foo dest
$ tree -F
.
|-- dest/
| `-- foo/
`-- src/
`-- foo/
4 directories, 0 file
不过,您最常希望使用-a
( --archive
) 选项,这意味着-r
( --recursive
) 并且还保留元数据。
相反的工作方式类似:
$ tree -F
.
|-- dest/
| `-- foo/
`-- src/
`-- foo
3 directories, 1 file
命令是相同的,尽管-r
这里实际上不需要(您不能递归到文件中):
$ rsync -r src/foo dest
$ tree -F
.
|-- dest/
| `-- foo
`-- src/
`-- foo
2 directories, 2 files