无法使用 Git Bash rsync 到另一个卷

gen*_*ama 10 windows bash rsync mingw

我在 Windows 机器上使用 git bash:在 2016-02-23 上构建的适用于 Windows 的 Git 2.7.2 版(32 位版本),可从https://git-scm.com 获得

在 bash 中,我可以将目录复制/c//e/(USB 拇指驱动器)。但是,当我尝试使用rsync. 我尝试添加cygdrive到目录名称,但这没有用。还尝试添加-e(只是为了看看会发生什么)也不起作用。

我提到复制命令有效,因为奇怪的是我可以以一种方式看到驱动器,但不能以另一种方式看到它。

复制成功:

在此处输入图片说明

不成功rsync

在此处输入图片说明

其他背景和研究:

错误 255

在某些时候,我相信我得到了完全相同的错误 (255),这让我看到了这篇文章。但是,这里的解决方案与cygwingit bash相关,而不是 git bash。 /sf/ask/1187838361/

流浪者和 rsync

关于 的力学有很多很好的讨论rsync,尤其是从mitchellh. 但是,我不确定他们引用的哪些组件存在于我的安装中,或者不确定如何判断。我在这个网站上问了一个关于这个问题的单独问题。来源:https : //github.com/mitchellh/vagrant/issues/3236

列出模拟 Linux 环境中的驱动器

来源:http : //mingw-users.1079350.n2.nabble.com/Windows-c-drive-td6555321.html 当我这样做时,cat /etc/fstab我得到以下信息:

$ cat /etc/fstab
# For a description of the file format, see the Users Guide
# http://cygwin.com/cygwin-ug-net/using.html#mount-table

# DO NOT REMOVE NEXT LINE. It remove cygdrive prefix from path
none / cygdrive binary,posix=0,noacl,user 0 0
none /tmp usertemp binary,posix=0,noacl 0 0
Run Code Online (Sandbox Code Playgroud)

我认为这表明有一个名为 的卷cygdrive,但是我没有找到任何成功访问该名称的命令。

可能重复的问题:

@kenorb 建议这个问题与 为什么 cwRsync 在 Windows 上不起作用?.

我不记得昨天看到这篇文章,但这个看起来最像我的。我还是觉得不一样,因为这个问题是2011年发的,这个版本rsync是2016年的。我昨天早上用的上一个版本(2015年安装的)报了不同的错误,提示我升级git版本/ git bash。

如果该问题是重复的,则(截至目前)没有可接受的答案,并且最佳答案对我不起作用。

总的来说,所有这些研究让我相信rsyncWindows 端口存在几个问题,这只是最新的一个。

我确实认为这个问题可以通过我以不同的方式指定驱动器来解决......但我不知道什么会起作用。我试过使用驱动器名称、驱动器号、Windows 冒号反斜杠语法。显然它没有用,最后我只是猜测。

msysgit 中的 rsync

在 2011/10/18 Werner BEROUX 说

是否可以转义以将“/c/Folder”作为参数传递给应用程序?默认情况下,Git 将其转换为“C:\Folder”,即使使用常见的转义方法,我似乎也无法避免它。 https://groups.google.com/forum/#!topic/msysgit/J1hvt9Ave8g

我不确定这是否相关,我认为他们正在尝试在 git 命令中使用 rsync,但有趣的是他们在路径名方面遇到了问题。我想知道这些错误是否由被转换为包含:?

错误代码 12 和 255(2016 年 3 月 21 日编辑)

由于其他人(@davidpostill)也说这是重复的,我想我会再次尝试另一个问题中的答案/评论。

来自另一个问题的最高投票答案和评论仍然对我不起作用,这使我得出结论,这是一个不同的问题。

以下是从拇指驱动器尝试 rsync 的结果,正如在另一个问题上投票最高的答案的最终评论中所建议的:

首先,我尝试使用/c/,这是在 Bash for Windows 中的其他命令中引用驱动器的方式。

user@computer MINGW32 /e
$ rsync -trd /c/examp/ .
ssh: Could not resolve hostname c: Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [Receiver=3.0.9]
Run Code Online (Sandbox Code Playgroud)

我遇到了同样的/cygwin前缀错误:

user@computer MINGW32 /e
$ rsync -trd /cygwin/c/examp/ .
ssh: Could not resolve hostname c: Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [Receiver=3.0.9]
Run Code Online (Sandbox Code Playgroud)

尝试了各种类型的添加c:,但正如过去指出的那样,冒号让人rsync认为它是远程连接,因此失败并出现错误 255。

user@computer MINGW32 /e
$ rsync -trd /c:/examp/ .
ssh: Could not resolve hostname c: Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [Receiver=3.0.9]
Run Code Online (Sandbox Code Playgroud)

gen*_*ama 1

两年后,我找到了一个似乎适用于我最新的计算机(Windows 10,64 位)的答案。

  1. 安装适用于 Windows 的 git bash
  2. rsyncfutureware.at下载*
  3. 提取到任何地方,我选择C:\rsync-3.1.2-2-x86_64.pkg
  4. bin文件夹添加到系统路径的顶部

* 我不知道 futureware.at 背后的人是谁,我更愿意链接到更主要的来源。

我还在这里发布了答案,以回答一个更普遍的问题,因为我当时不记得这个问题在哪里。