最近工作很忙,常常需要把一些需要继续处理的文件拷贝到U盘,带回家继续处理;在文件比较少的情况下还好,在文件特别多、或者特别大的情况下,处理起来就会比较麻烦。于是我意识到需要用一个工具来完成这个文件同步的工作,自然而然就想到了 Linux 平台上的 rsync;rsync 的优点是显而易见的:支持网络和本地传输,支持断点传输,最重要的是——支持增量更新,这也就让它在处理多文件、大文件的时候更加有优势了。
那么能否实现在 Windows 系统中运行 rsync 呢?在网上找了一些资料并折腾了一番,发现是可以实现的。
一、原理
如何在 Windows 下跑 rsync ?
rsync 是 Linux 平台的程序,要在 Windows 运行,要么就是拿源码在Windows环境下重新编译一遍,那么就会用到 MinGW 这类的编译工具,并且改动源码肯定是少不了的;要么就是在 Windows 下搞一个 Linux 的虚拟环境,那么可以考虑 Cygwin, WSL 这类东西。有没有更简单的方法呢?想到在 Windows 下使用 Git Bash 工具的时候,也经常会使用到 ls, grep 这类 Linux 下的命令,那么这个又是如何实现的?
找了一些资料,发现 Git for Windows 是基于 MSYS 做出来的。以下引用一段来自知乎网友的话:
(来源:https://www.zhihu.com/question/65055974/answer/227054790)