rsync --compare-dest arg 无论如何都不存在

rsync --compare-dest arg 无论如何都不存在

我有这些文件夹:

.
├── result
├── test
│   ├── file1
│   ├── file2
│   ├── file3
│   └── file4
└── test2
    ├── file1
    ├── file2
    ├── file3
    └── file5
  • test是原始文件夹。
  • 有些test2文件是不同的,有些文件是相同的,有些文件只存在于其中。

我希望用户 rsync 仅复制result那些test2比 上的文件更新test或不存在的文件test

=我运行以下任何操作系统,改变文件夹名称和文件夹名称之间是否存在--compare-dest,文件夹名称是否有尾部斜杠,甚至反转参数,以防万一我误解了比较哪个文件夹-目的地:

rsync -av --dry-run --itemize-changes --compare-dest=test2 test/ result/
rsync -av --dry-run --itemize-changes --compare-dest=test2/ test/ result/
rsync -arv --dry-run --itemize-changes --compare-dest test test2/ result/
rsync -arv --dry-run --itemize-changes --compare-dest test/ test2/ result/

他们所有人都告诉我:

--compare-dest arg does not exist: NAME_OF_EXISTING_FOLDER
  • 我究竟做错了什么?
  • 为了满足我在本问题开头解释的要求,我发出的正确命令是什么?

答案1

man rsync:

如果 DIR 是相对路径,则它是相对于目标目录的。

你需要:

rsync -av --dry-run --itemize-changes --compare-dest="$PWD"/test test2/ result/

相关内容