Wil*_*ant 28 windows ubuntu cygwin rsync git
我有三个 windows box,它们以各种方式连接到我网络上的 linux box(一个是网络本地的,一个是笔记本电脑,可能是也可能不是本地的,另一个是我的工作台式机)。我目前正在使用 git 在盒子之间同步我的大部分东西(使用 Linux 盒子作为服务器)并且它像冠军一样工作。
但是,现在我还想添加我的 MP3 收藏(12 场),以便在盒子之间有效地同步。我最初认为我可以为此使用 git,但看起来 rsync 是更好的选择,因为我并不真正需要所有历史资料。由于我现有的所有管理脚本都在 git bash(而不是 cygwin)下运行,我希望能够从 git bash 使用它(MINGW32 是窗口标题栏中的内容)。我可以在 Cygwin 中下载它并复制它,还是有更好的方法来处理它?Linux 机器正在运行最新版本的 Ubuntu Server 版本 - 我是否需要对其进行任何操作才能使 rsync 正常工作?
我意识到我这样做的方式可能比需要的要困难一些,但我也将其用作提高我的命令行技能的练习。有什么建议?
我可以从 cygwin shell 使用 rsync,但不能从 msysgit 使用。我尝试将 rsync.exe 从 cygwin 的 bin 文件夹复制到 msysgit 的 bin 文件夹,但它仍然没有找到它。我还需要执行其他步骤才能在那里安装它吗?奇怪的是,我收到了一个找不到文件的错误,而不是给我一个文件的依赖项之一丢失的错误。
nex*_*ech 33
截至目前(2017 年 9 月 7 日),手动向 Git for Windows 环境添加 rsync 支持非常容易,甚至不必求助于运行 Git for Windows SDK。
我偶然发现了这篇文章,并认为考虑到所有替代方案,这真的不是那么容易,但它确实如此。您需要做的就是从MSYS2 包存储库中获取 rsync 包并将rsync.exe
文件解压缩到C:\Program Files\Git\usr\bin
. 一个就完成了。有用。
如果您需要帮助rsync.exe
从 rsync 包(tar.xz
格式)中提取,您可以使用像 7zip 这样的压缩实用程序或直接在 Git for Windows bash 环境中执行,如下所示:
cd /c/downloaded_location
tar -xvf rsync.pkg.tar.xz usr/bin/rsync.exe --strip-components=2
Run Code Online (Sandbox Code Playgroud)
这将为您提供rsync.exe
下载位置中的文件(相应地调整包名称)。鉴于 Windows 权限问题,我不会尝试给出有关将 exe 放入C:\Program Files\Git\usr\bin
文件夹的特定命令。您可以通过资源管理器 GUI 或提升的命令行实用程序复制它(是的,它需要管理员级别的权限才能将某些内容复制到 Program Files 文件夹中)。
如果你也想用佳丽认证使用rsync通过ssh,ssh的-盛会二进制文件已经安装在Git中为Windows和所有你需要做的就是添加一个小一点你~/.bashrc
或~/.bash_profile
文件(见SSH-选美使用部分和GIT中视窗维基)。我已经修改了它专门用于 Windows 环境的 Git,并通过检测丢失的套接字文件来增强它:
# ssh-pageant allows use of the PuTTY authentication agent (Pageant)
SSH_PAGEANT="$(command -v ssh-pageant)"
if [ -S "$SSH_AUTH_SOCK" ]; then
PAGEANT_SOCK=$SSH_AUTH_SOCK
else
PAGEANT_SOCK=${TEMP:-/tmp}/.ssh-pageant-$USERNAME
fi
if [ -x "$SSH_PAGEANT" ]; then
eval $("$SSH_PAGEANT" -qra "$PAGEANT_SOCK")
fi
unset SSH_PAGEANT
unset PAGEANT_SOCK
Run Code Online (Sandbox Code Playgroud)
我无法通过这种方式手动安装其他实用程序可能会或可能不会工作,但 rsync 似乎工作得很好。希望该 repo 将保留并继续更新——我认为是这样,因为它托管在官方 MSYS2 站点上。
我知道问题不是“为 MSYS 使用 rsync”,但我认为提到这一点是相关的:
“MinGW Shell”(以前最为人所知的是“MSYS(基本系统)”)确实有 rsync。我尽可能经常使用该外壳/系统,因为它比 Cygwin 小得多。(我可能是如今唯一关心文件大小的人。)
“Git for Windows”/“Git Bash”可以轻松添加 rsync,因为它基于 MinGW/MSYS,并且之前在邮件列表中已经提到过。
附注!如果您的 MinGW Shell 没有 rsync,只需运行“mingw-get install msys-rsync”来添加它。
2016 年 3 月 25 日更新:
Windows 版 Git 现在使用 MSYS2。MSYS2 使用“pacman”而不是“mingw-get”来安装软件包。不幸的是,“Git for Windows”不包括 pacman ......有两种选择:
最后一个选项是我最喜欢的,但它还没有精简,所以第一个选项可能更容易。希望它会被修复。
附注!我对 MSYS2 / pacman 玩的不多,但看起来很有希望。
2019 年 8 月 7 日更新:
如果您使用的是适用于 Windows 的 Git (Git Bash),那么最好从 MSYS2 软件包存储库中获取 rsync 软件包,如上面的答案中所述。
我认为git bash
你真正的意思是msysgit
,又名“git for windows”。“开始”菜单选项是git bash
,它解释了您使用的名称。
首先,你在这里放弃 git 作为一个选项是正确的。git 做得不好的事情之一是处理二进制文件——你最终会得到一个巨大、臃肿的存储库。此外,由于您不会处理更改,因此使用 git 的开销让我觉得有点矫枉过正。
其次,听起来您实际上要问的问题是“我可以使用 msysgit/Windows 中的 rsync 吗?” 简短的回答是,不是开箱即用的。 msysgit
就形式和功能而言,实际上只是 Windows 命令行。话虽如此,您有两个选择:下载第三方工具以在 Windows 计算机上启用 rsync(Stack Overflow:Rsync for Windows),或者仅使用 cygwin。事实上,它们的结果是相同的——所以由你来决定哪个效果更好。
归档时间: |
|
查看次数: |
24958 次 |
最近记录: |