我在 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
答案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.exe
、msys-2.0.dll
和msys-z.dll
到msys-iconv-2.dll
要运行 rsync 的目录中。使用 进行测试rsync.exe -h
。