为什么 rsync 会截断这条路径?

为什么 rsync 会截断这条路径?

我试图通过 rsync 守护进程同步一组远程文件,但生成的路径缺少初始路径元素。

$ rsync -HRavP ftp.ncbi.nih.gov::refseq/H_sapiens/README 2015-05-11/
receiving incremental file list
created directory 2015-05-11
H_sapiens/
H_sapiens/README
          4,850 100%    4.63MB/s    0:00:00 (xfr#1, to-chk=0/2)

sent 51 bytes  received 5,639 bytes  3,793.33 bytes/sec
total size is 4,850  speedup is 0.85

$ tree 2015-05-11/
2015-05-11/
└── H_sapiens
    └── README

请注意,生成的树缺少远程路径的第一部分(“refseq”)。

我意识到我可以将远程路径的第一个元素附加到目标路径,但(对我来说)这似乎不太可能是 rsync 的预期行为。

值得注意的是,rsync -HRavP refseq/H_sapiens/README 2015-05-11/(源是本地文件)在目标目录下正确创建了完整的相对路径。

[还:https://stackoverflow.com/questions/30177423/]

答案1

使用 rsync 守护程序时,路径的第一部分不被视为文件夹,而更多地被视为存储库。 rsync 守护进程在其conf 文件中查找此存储库文件的完整路径,并且存储库名称从目标路径中删除。要获得您期望的行为,请跳过守护进程并仅使用 ssh。如果您需要使用“ssh-keygen”和“ssh-copy-id”绕过密码设置 ssh 密钥。

相关内容