rsync本地同步核心是路径斜杠写法、-a/-v/--delete等关键选项及增量传输逻辑:/source/同步内容,/source同步目录本身;-a保留元数据,--delete确保完全一致,-n可预览操作。

Linux 中用 rsync 同步本地目录,核心是掌握路径写法、关键选项和增量逻辑。它不是简单复制,而是智能比对差异后只传变化部分,省时间也省空间。
基础命令格式与路径细节
同步本地两个目录最常用命令是:
- rsync -av /source_dir/ /target_dir/:斜杠结尾表示“同步目录里的内容”,即把 /source_dir/ 下所有文件和子目录放进 /target_dir/ 里
- rsync -av /source_dir /target_dir:无斜杠则表示“同步整个目录本身”,结果是 /target_dir/source_dir/ 这样的嵌套结构
初学者最容易出错的就是这个斜杠。比如想把 /data/logs 的内容同步到 /backup/logs,必须写成 /data/logs/,否则会在 /backup 下多出一层 logs 目录。
常用选项组合说明
实际使用中这几个选项基本够用:
- -a(归档模式):自动包含递归、权限、属主、时间戳等,日常同步首选
- -v(详细输出):显示正在处理哪些文件,便于确认是否符合预期
- --delete:目标目录中存在但源目录已删除的文件,也会被清除,确保两边完全一致
- -n(dry-run):测试运行,不真正改动文件,适合首次执行前验证效果
例如:先试一次 rsync -avn /data/ /backup/,看终端列出的增删动作是否合理;确认无误后再去掉 -n 执行真实同步。
同步过程中的关键行为
rsync 的本地同步有几点必须清楚:
- 目标目录不存在时会自动创建,不用提前 mkdir
- 只传输修改时间或大小不同的文件,相同文件跳过,重复运行也不浪费资源
- 默认不覆盖目标中更新时间更晚的文件(除非加 --update),但加了 --delete 后,源里没有的文件会被删
- 符号链接、设备文件、权限位等元数据在 -a 模式下都会保留,和原始目录高度一致
一个实用小例子
假设你有 /home/user/docs 和空的 /mnt/backup/docs,想做完整镜像:
- 先检查目标是否存在:ls /mnt/backup/docs
- 预览操作:rsync -avn /home/user/docs/ /mnt/backup/docs/
- 执行同步:rsync -av --delete /home/user/docs/ /mnt/backup/docs/
之后每次只需再运行第三条命令,就能保持 /mnt/backup/docs 和源目录实时一致。


















