Rclone 是一个命令行文件同步工具:一个 exe,能把文件在本地目录、S3 和 WebDAV 各家网盘之间搬。它不带图形界面,但能自己起一个 WebDAV 目录页,浏览器打开就能点着看。
它解决的是「多个存储之间怎么对齐」这件事。手工拷文件容易漏,写脚本又得处理断点和增量。rclone 把这些做成一条命令。
这次用两个本地目录当源和目标,跑了同步、校验、统计和起服务四步,每步都在一秒以内。数字全部记在下面。
一个 exe 管几十种存储后端
它的模型很简单:把每个存储位置配成一个 remote,写进一份配置文件,之后所有命令都用 remote 名字操作。
配置文件是纯文本,一行一个 remote,可以随时拷给另一台机器用。这条路子跟服务器上配一台机器再 ssh 过去是一个思路。
| 概念 | 含义 | 本次用的值 |
|---|---|---|
| remote | 一个存储位置的别名 | src / dst |
| type | 后端类型 | local |
| path | 该 remote 下的路径 | 本地绝对路径 |
| config | 配置文件 | rclone.conf |
装的过程
zip 31634900 字节,解开六个文件,其中 rclone.exe 85500928 字节,解压 0.45 秒。剩下的是 README、LICENSE 和文档。
单文件不依赖运行时,拷到 PATH 里就能用。Windows 上它启动一次 0.59 秒,比多数带界面的工具都快。
| 项目 | 字节 |
|---|---|
| zip 包 | 31634900 |
| rclone.exe | 85500928 |
| 解压文件数 | 6 个 |
配置两个 remote 用了 1.32 秒
命令行建 remote 不用进交互界面,一条命令一个:rclone config create 名字 类型。第一个 0.90 秒,第二个 0.42 秒,差在第一次要创建配置文件。
建完打开 rclone.conf 能看到两段,每段三行:类型、路径、名字。改配置直接编辑这个文件,不用重跑命令。
| 命令 | 耗时 | 结果 |
|---|---|---|
| rclone version | 0.59 秒 | v1.75.2 |
| config create src local | 0.90 秒 | 新建配置文件 |
| config create dst local | 0.42 秒 | 追加一个 remote |
不用 remote 也能跑
直接写两个本地路径,rclone sync D:\a D:\b 也能同步。remote 的价值在跨机器和跨协议:换成 S3 就是把路径换成 s3:bucket/前缀,命令结构一点不变。
这次为了走完整流程才配了 remote。日常只搬本地目录的人可以直接用路径。
同步 51 个文件 0.55 秒
源目录 51 个文件 21121520 字节,其中一个大文件 20 MB,另外五十个是几 KB 的文本,分散在五个子目录里。
一条 rclone sync 跑完 0.55 秒,进度显示 20.143 MiB 全部传完。目标目录的文件数和字节数与源完全一致,都是 51 个、21121520 字节。
| 项目 | 数值 |
|---|---|
| 源文件数 | 51 个(1 个大文件加 50 个小文件) |
| 源字节 | 21121520 字节 |
| 同步耗时 | 0.55 秒 |
| 目标文件数 | 51 个 |
| 目标字节 | 21121520 字节 |
sync 会删东西
这是最需要说清的一点:sync 让目标变成源的镜像,源里删掉的文件,目标里也会被删。copy 只增不删。
第一次用建议先加 --dry-run,看一眼会动哪些文件再真跑。这个参数不写文件,只打印计划。
零字节传输也算一次比对
0.55 秒搬 20 MB 是本地磁盘的成绩。它的实际工作分两段:先列文件比对大小和修改时间,再传差异部分。第二遍跑同样的命令会更快,因为比对完发现没有差异。
校验和统计各半秒内
rclone check 用 0.47 秒比对完两边,输出 51 matching files,没有差异。它做的是哈希比对,比看大小可靠。
rclone size 用 0.29 秒报出 Total objects 51、Total size 20.143 MiB。想在同步前后各跑一次对账,这条够用。
| 命令 | 耗时 | 输出 |
|---|---|---|
| check src: dst: | 0.47 秒 | 51 matching files |
| size dst: | 0.29 秒 | 51 个对象 / 20.143 MiB |
哈希要比对就加 --checksum
默认同步按大小和修改时间判断要不要传。跨时区或者用不同文件系统时,时间戳会对不上,加 --checksum 改成按哈希判断,慢一点但准。
网盘场景尤其要加,因为很多网盘返回的修改时间精度只到分钟。
起一个 WebDAV 目录 0.54 秒
rclone serve webdav 可以把任意 remote 挂成一个 HTTP 目录,浏览器打开就能浏览和下载。启动到能访问 0.54 秒。
页面很朴素:一个 filter 输入框,一张表列出名字、大小、修改时间。点目录进去,点文件下载。加 --read-only 之后只能看不能改。


五种 serve 模式
同一个命令支持 http、webdav 和 ftp 等五种协议。选哪个看客户端:Windows 资源管理器挂网络位置用 webdav,手机投屏用 dlna,要挂载成磁盘用 sftp。
这条能力让它不只是同步工具。一台没有界面的机器,挂一个目录出来给别的设备取文件,一条命令解决。
几个真踩过的坑
| 症状 | 原因 | 处理 |
|---|---|---|
| 第一次跑就把目标文件删了 | 用的是 sync 不是 copy | 先加 --dry-run 看计划 |
| 明明一样却重复传 | 时间戳或大小有偏差 | 加 --checksum |
| 网盘同步漏文件 | 文件名有非法字符 | 加 --ignore-case 或改名 |
| 配置改了不生效 | 用了别的 config 文件 | 命令里显式 --config |
| 端口被占 | 上次的 serve 没退 | 换 --addr 端口 |
第一条代价最大。sync 的语义是「让目标等于源」,不是「把源复制过去」。想清楚这两个词的区别再敲回车。
什么场景值得上
| 你的情况 | 结论 |
|---|---|
| 两台机器定期对齐资料 | 合适,一条命令加计划任务 |
| 把本地目录备份到网盘 | 合适,支持加密和增量 |
| 要图形界面拖文件 | 不合适,它是命令行的 |
| 要双向实时同步 | 不合适,它按次跑,不是常驻监听 |
| 临时给同事传个目录 | 合适,serve 一条命令起目录 |
它的定位是「存储之间的搬运层」。界面用别的工具,逻辑归它管。写进计划任务之后基本不用管。
要实时双向同步得换 syncthing 那类常驻进程,两者的思路不同:一个是按下就跑,一个是挂着一直跑。







