13

我正在尝试使用 Windows 7 中的 Git Bash 将本地路径同步到另一个驱动器。我下载了 cwRsync 并将文件复制到我的 Git bash bin 目录中。我可以运行 rsync 但以下命令给我带来了问题

rsync -av /c/00-dev/05-batch /f/RSYNC/ 源和目标不能都是远程的。rsync 错误:main.c(1135) [receiver=3.0.6] 处的语法或使用错误(代码 1)

两条路径都是正确的,但不会同步。

4

3 回答 3

14

解决方法:cd使用/c相对rsync路径。

所以这有效:

cd /c
touch temp/test.txt
rsync temp/test.txt temp/test2.txt

虽然这没有,即使你cd/c

$ rsync /c/temp/test.txt /c/temp/test2.txt
The source and destination cannot both be remote.

使用git 2.9.0.windows.1.

于 2016-07-21T11:17:56.427 回答
0

在 Windows 中,我尝试使用 cwRsync 在 Z:(网络磁盘) 和 D:(usb 记忆棒) 上的文件夹之间同步数据,不包括子文件夹“数据”:

rsync -r -v --size-only --dry-run --exclude=Data --chmod=ugo=rwX /cygdrive/z/"Scan folder"/"Sub folder" /cygdrive/d/"Scan folder"/"Sub folder"

-r表示递归,-v详细输出,--dry-run仅用于测试(数据不传输), --exclude排除子文件夹或文件,--chmod=ugo=rwX设置适当的权限(读取更多关于权限的信息在这里

对于Windows 上的西里尔文名称,请使用“chcp 65001”。

于 2020-08-27T15:22:02.587 回答
0

这使用来自Git Bash的cwRsync有效。

export MSYS_NO_PATHCONV=1
rsync -av /cygdrive/c/00-dev/05-batch /cygdrive/f/RSYNC/

cwRsync.exe需要/cygdrive/<drive-letter>绝对路径,所以简单的rsync -av /cygdrive/c/00-dev/05-batch /cygdrive/f/RSYNC/工作从cmd

但是,Git Bash将路径之类的转换.../c/...为奇怪的东西,例如...C:\.... 该行:export MSYS_NO_PATHCONV=1阻止该转换。(查看更多:如何阻止 MinGW 和 MSYS 修改命令行中给出的路径名)。

在脚本中使用unset MSYS_NO_PATHCONV以恢复标准Git Bash行为。

于 2021-05-23T09:35:36.727 回答