初识 rsync:高效同步文件的利器(含 rsync -av 详解)

当然可以,以下是一篇面向新手的 Blog,系统地介绍了 rsync 命令及其常见用法,尤其是 rsync -av 的详细解析。


初识 rsync:高效同步文件的利器(含 rsync -av 详解)

在日常开发、部署或备份中,我们经常需要在不同目录或不同机器之间同步文件。rsync 是一个强大而高效的工具,能够帮助我们快速同步文件和目录,它的核心优势是仅传输变更的部分,大大提高了效率。

本文将带你入门 rsync,并重点介绍其中最常用的参数组合之一:rsync -av


一、什么是 rsync?

rsync 是 Unix 系统中用于文件和目录同步的命令行工具。它支持本地同步(如:两个本地目录间)和远程同步(通过 SSH)。

rsync 的典型用途:

  • 本地备份文件或目录;
  • 同步服务器上的代码或配置文件;
  • 自动化部署中将构建结果推送到服务器;
  • 在远程机器之间传输大文件。

二、基本语法

rsync [选项] 源路径 目标路径
  • 源路径:你希望复制的文件或目录
  • 目标路径:你希望同步到的路径,可以是本地或远程地址

本地示例

rsync -av /Users/jack/project/ /Users/jack/backup/

远程示例(通过 SSH)

rsync -av ./build/ jack@192.168.0.2:/home/jack/deploy/

三、重点参数详解:rsync -av

这是最常用的参数组合之一。下面我们来详细拆解一下:

-a(–archive)

表示“归档模式”,这是一个组合选项,开启了一系列有用的参数,包括:

  • -r(递归复制子目录)
  • -l(复制符号链接)
  • -p(保留文件权限)
  • -t(保留时间戳)
  • -g(保留所属用户组)
  • -o(保留文件所有者)
  • -D(保留设备文件信息)

归档模式的目的是尽可能完整地保留原始文件的信息和结构,非常适合做备份。

-v(–verbose)

表示“详细模式”,会在终端输出同步的详细过程,包括每个文件的传输情况。


举个例子:

rsync -av /Users/jack/photos/ /Volumes/Backup/photos/

这个命令做了以下事情:

  • photos/ 目录中的所有内容(包括子目录)复制到外部磁盘 Backup 的对应路径;
  • 保留所有文件的权限、时间戳、符号链接等元信息;
  • 显示详细的同步进度。

注意结尾的 /
如果源路径末尾加了 /,表示复制“目录中的内容”;
如果没有 /,表示复制整个目录本身。

对比:

rsync -av /source/ /target/   # 同步的是 source 中的内容
rsync -av /source /target/    # 同步的是 source 整个目录

四、更多常用参数拓展

参数含义说明
-z启用压缩,适用于远程传输
--progress显示文件传输进度
--delete删除目标目录中源路径已不存在的文件
-e ssh指定使用 SSH 作为远程传输方式
--dry-run预演,不真正执行操作,常用于检查命令是否正确

示例:带删除和压缩的远程同步

rsync -avz --delete ./site/ user@192.168.1.10:/var/www/site/

这个命令会:

  • 同步 site/ 的内容到远程服务器 /var/www/site/
  • 压缩数据以减少传输量
  • 删除远程中那些本地已不存在的文件

五、实际应用场景

  1. 定时备份
    结合 cron 定时任务,每天定时备份重要目录:
0 2 * * * rsync -av /home/user/data/ /mnt/backup/data/
  1. 部署自动化
    配合脚本或 CI 工具,将构建结果同步到测试或生产服务器。

  2. 同步大目录中的改动
    不需要每次全量复制,rsync 只会传输内容有改动的文件块。


六、小结

命令作用
rsync -av src/ dst/同步目录内容并保留所有文件信息
rsync -avz src/ remote:/path/远程同步并压缩传输数据
rsync -av --delete src/ dst/同步并删除目标中多余文件
rsync -av --dry-run src/ dst/模拟同步以便检查是否正确

七、Last

rsync 是 Linux/Unix 工具箱中非常值得掌握的利器,特别是对系统运维、开发者、自动化部署等场景非常实用。希望你通过本文能掌握 rsync -av 的使用方法,并举一反三运用在自己的项目或日常操作中。

如果你对 rsync 更复杂的功能感兴趣(如排除文件、同步单个文件、限制带宽等),欢迎留言或点赞让我继续更新系列文章 😊


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

依旧风轻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值