当前位置: 首页 > news >正文

初识 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 更复杂的功能感兴趣(如排除文件、同步单个文件、限制带宽等),欢迎留言或点赞让我继续更新系列文章 😊


相关文章:

  • 【GESP】C++二级练习 luogu-B3721 [语言月赛202303] Stone Gambling S
  • VR体验馆如何用小程序高效引流?3步打造线上预约+团购裂变系统
  • LeetCode 解题思路 33(Hot 100)
  • Spring集成asyncTool:实现复杂任务的优雅编排与高效执行
  • 学习需要回看笔记
  • C语言 数据结构【双向链表】动态模拟实现
  • 11. grafana的table表使用
  • [随记] 安装 docker 报错排查
  • Docker 入门指南:基础知识解析
  • 【C++初学】C++实现通讯录管理系统:从零开始的详细教程
  • 道路坑洼目标检测数据集-665-labelme
  • Linux系统学习Day1——虚拟机间的讲话
  • 五子棋游戏开发:静态资源的重要性与设计思路
  • WPF 资源加载问题:真是 XAML 的锅吗?
  • [MySQL数据库] InnoDB存储引擎(二) : 磁盘结构详解
  • 智慧景区能源管理解决方案,为旅游“升温”保驾护航
  • 不用第三方库调用DeepSeek
  • Go语言从零构建SQL数据库(6) - sql解析器(番外)- *号的处理
  • React 列表渲染
  • 算法(0)-时间复杂度-二分法的详解与扩展-对数器-C++版
  • 一家公司做两个网站/企业营销型网站有哪些
  • 阿里巴巴网站推广方法/软文营销文章案例
  • 安装完wordpress怎么打开/东莞整站优化推广公司找火速
  • 怎样创建自己的网站/广州百度网站推广
  • 沛县微网站开发/seo网站培训优化怎么做
  • 网站建设费用价格/手机网站自助建站系统