Apple MacOS 中使用rsync拷贝数据
MacOS    2025-03-20 17:50:19    3    0    0
maker   MacOS

rsync 是 macOS 上一个非常强大的文件同步和复制工具,它可以用来在本地或远程服务器之间同步文件和目录。

下面是 macOS 上常用的 rsync 使用方法和示例:


🔧 基本语法:

rsync [选项] 源路径 目标路径

✅ 常用选项解释:

选项说明
-a归档模式(等价于 -rlptgoD,常用于同步文件夹)
-v显示详细输出
-z在传输过程中压缩数据
-P显示进度条 + 保留部分传输
--delete删除目标中源路径没有的文件(慎用)
-e指定使用的远程 shell(如 ssh)

📁 示例用法:

1. 本地文件夹同步

rsync -av ~/Documents/Project/ /Volumes/BackupDisk/Project/

~/Documents/Project/ 同步到移动硬盘 BackupDisk 中,保留权限和结构。

注意末尾的 /:加上 / 表示同步目录“内容”;不加 / 表示连目录本身一起复制。


2. 带进度条同步

rsync -avP ~/Downloads/ /Volumes/BackupDisk/Downloads/

3. 同步到远程服务器

rsync -avz ~/Projects/ user@remotehost:/home/user/Projects/

使用 SSH 把本地项目同步到远程服务器。


4. 从远程服务器同步回本地

rsync -avz user@remotehost:/home/user/Projects/ ~/Projects/

5. 删除目标中不存在的文件(双向保持一致)

rsync -av --delete ~/SyncFolder/ /Volumes/BackupDisk/SyncFolder/

小心使用 --delete,可能误删目标中的重要文件。


6. 指定使用 SSH 端口

rsync -avz -e "ssh -p 2222" ~/Projects/ user@remotehost:/home/user/Projects/​


两个移动硬盘之间完整拷贝数据(保留所有文件结构、权限、时间戳等),最推荐使用的 rsync 命令如下:

最常用、最安全的完整备份参数组合:

rsync -avh --progress /Volumes/硬盘A/ /Volumes/硬盘B/

🔍 参数说明:

参数说明
-a归档模式,保留所有权限、时间戳、符号链接等
-v显示详细过程(verbose)
-h以人类可读格式显示文件大小(human-readable)
--progress显示每个文件的同步进度

⚠️ 注意路径结尾的 /

  • 有 /:表示复制目录中的内容
  • 无 /:表示连目录本身也一起复制。

示例区别:

# 复制 A 的“内容”到 B
rsync -avh --progress /Volumes/硬盘A/ /Volumes/硬盘B/

# 复制 A 整个目录到 B(目标路径会变成 /Volumes/硬盘B/硬盘A/)
rsync -avh --progress /Volumes/硬盘A /Volumes/硬盘B/

✅ 如果你希望目标硬盘和源一模一样(包括删除目标中多余的文件):

rsync -avh --delete --progress /Volumes/硬盘A/ /Volumes/硬盘B/

⚠️ --delete删除目标硬盘中源硬盘没有的文件,务必小心使用!


🧠 额外推荐(更强力参数):

rsync -aAXvh --progress
  • -A 保留 ACL 权限(需要硬盘支持)
  • -X 保留扩展属性(macOS 标签、xattr)

🔄 想要持续同步(比如定期自动备份)?

你还可以结合 cronlaunchd 来定时执行 rsync,我也可以帮你写定时脚本。





Pre: 使用Ollama 部署 本地 Deepseek R1大模型

Next: Bat 批处理显示输出重定向操作符

3
Table of content