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

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

我在 Windows 机器上使用 git bash:Git for Windows 版本 2.7.2(32 位版本)于 2016-02-23 构建,可从以下网址获取https://git-scm.com

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

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

复制成功:

在此处输入图片描述

不成功rsync

在此处输入图片描述

其他背景和研究:

错误 255

有时候,我相信我遇到了完全相同的错误 (255),这让我看到了这篇文章。但是,这里的解决方案与有关cygwin,而不是 git bash。 https://stackoverflow.com/questions/16969119/dotcloud-push-on-cygwin-fails-with-rsync-error-unexplained-error-code-255

Vagrant 和 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

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

可能重复的问题:

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

我不记得昨天看过这篇文章,但这篇文章看起来最像我的。我仍然认为它不同,因为这个问题是在 2011 年发布的,而这个版本rsync是 2016 年的。我昨天早上使用的上一个版本(安装于 2015 年)给出了不同的错误,并提示我升级我的 git / git bash 版本。

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

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

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

msysgit 中的 rsync

10/18/11 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/,这是在 Windows 版 Bash 中的其他命令中引用驱动器的方法。

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]

我得到了与/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]

尝试了各种类型的添加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]

答案1

两年后,我找到了一个似乎可以在我最新的电脑(Windows 10,64 位)上运行的答案。

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

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

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

答案2

http://repo.msys2.org/msys/x86_64/下载以下软件包:

http://repo.msys2.org/msys/x86_64/rsync-3.1.3-1-x86_64.pkg.tar.xz
http://repo.msys2.org/msys/x86_64/msys2-runtime-3.0.7-6-x86_64.pkg.tar.xz
http://repo.msys2.org/msys/x86_64/zlib-1.2.8-3-x86_64.pkg.tar.xz
http://repo.msys2.org/msys/x86_64/libiconv-1.16-1-x86_64.pkg.tar.xz

使用 将每个文件解压tar -xf,然后从usr/bin复制rsync.exemsys-2.0.dllmsys-z.dllmsys-iconv-2.dll要运行 rsync 的目录中。使用 进行测试rsync.exe -h

相关内容