在 Linux 日常开发和运维中,我们几乎天天在和文件打交道:
- 拷贝数据集
- 同步代码
- 备份目录
- 把本地文件传到远端服务器
很多人一开始用 cp、scp,直到数据量一大、目录一深、文件一多,就开始痛苦了。
这时候你一定会遇到一个名字:rsync。
一、rsync 是什么?
一句话概括:
它的核心优势包括:
- ✅ 增量同步(只传变化的文件)
- ✅ 支持本地 ↔ 本地、本地 ↔ 远端
- ✅ 保留权限 / 时间戳 / 软链接
- ✅ 支持断点续传
- ✅ 走 SSH,安全可靠
因此,在以下场景中 rsync 是首选:
- 大规模数据集同步
- 频繁更新的目录
- 服务器之间传输文件
- 备份 / 镜像目录
二、基本语法
rsync [选项] 源路径 目标路径
示例:
rsync -av src/ dst/
三、最常用的核心参数(必会)
1️⃣ -a(archive,灵魂参数)
-a = -rlptgoD
作用:
- 递归拷贝目录
- 保留:
- 文件权限
- 修改时间
- 软链接
- 用户 / 组信息
📌 结论:99% 的 rsync 命令都应该带 -a
2️⃣ -v(verbose,显示过程)
rsync -av src/ dst/
让你看到 rsync 正在干什么,不然你会怀疑它是不是卡住了。
3️⃣ -z(压缩传输)
rsync -avz src/ user@server:/data/
- 只在网络传输时有意义
- 本地拷贝一般不用
📌 网络慢、文件多时非常有用
4️⃣ –progress(显示进度)
rsync -av –progress src/ dst/
大文件时会显示:
120.3MB 42% 15.6MB/s
5️⃣ –delete(危险但强大 ⚠)
rsync -av –delete src/ dst/
含义是:
让目标目录和源目录保持“完全一致”
- 源目录删除的文件
- 👉 目标目录也会被删除
📌 常用于:
- 数据集镜像
- 服务器备份
🚨 第一次使用前一定配合 –dry-run
四、rsync 最容易踩的坑:路径结尾的 /
这是 rsync 新手 100% 会踩的坑。
❌ 不带 /
rsync -av data dst/
结果是:
dst/
└── data/
└── file.jpg
✅ 带 /
rsync -av data/ dst/
结果是:
dst/
└── file.jpg
记忆口诀
带 /:拷贝目录里的内容
不带 /:拷贝整个目录本身
五、本地文件同步示例
rsync -av –progress \\
/mnt/data1/images/ \\
/mnt/data2/backup_images/
适合:
- 数据集备份
- 多磁盘之间迁移数据
六、同步到远端服务器(rsync + SSH)
rsync -avz –progress \\
/mnt/data1/dataset/ \\
user@192.168.1.100:/data/dataset/
本质上等价于:
rsync + ssh
但比 scp 强得多。
指定 SSH 端口
rsync -avz -e "ssh -p 2222" src/ user@ip:/data/
指定私钥
rsync -avz -e "ssh -i ~/.ssh/id_rsa" src/ user@ip:/data/
七、只同步指定类型文件(实战很常见)
比如:只同步 jpg 图片
rsync -av \\
–include="*/" \\
–include="*.jpg" \\
–exclude="*" \\
src/ dst/
非常适合:
- 图像数据筛选
- 视频帧抽取后的同步
八、断点续传(大文件必备)
rsync -av –partial –progress src/ dst/
如果是超大文件,可以更激进:
rsync -av –append-verify src/ dst/
网络中断后,重新执行命令即可继续。
九、先演练,再执行(强烈推荐)
rsync -av –dry-run src/ dst/
作用:
- 只打印“将要发生的操作”
- 不会真正拷贝 / 删除文件
📌 特别是在使用 –delete 时,必做一步
十、rsync vs cp vs scp
| cp | ❌ | ❌ | ❌ | ⭐ |
| scp | ❌ | ✅ | ❌ | ⭐⭐ |
| rsync | ✅ | ✅ | ✅ | ⭐⭐⭐⭐⭐ |
十一、rsync 常用选项详解(参数字典)
1️⃣ -a / –archive(归档模式 ⭐⭐⭐⭐⭐)
-a
这是 rsync 最重要、最常用的参数。
等价于:
-rlptgoD
具体包含:
| -r | 递归拷贝目录 |
| -l | 保留软链接 |
| -p | 保留权限 |
| -t | 保留修改时间 |
| -g | 保留组 |
| -o | 保留属主 |
| -D | 设备文件 / 特殊文件 |
结论:
如果你不知道该加什么参数,先加 -a 再说
十二、选项速查表(实战向)
| 常规同步 | -av |
| 网络传输 | -avz |
| 大文件 | -avP |
| 镜像备份 | -av –delete |
| 演练检查 | –dry-run |
| 只拷贝图片 | –include / –exclude |
| 防止覆盖 | –ignore-existing |




