Apple MacOS 中使用rsync拷贝数据 - 全文内容:
显示技术博客列表Apple MacOS 中使用rsync拷贝数据
超短链接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)
🔄 想要持续同步(比如定期自动备份)?
你还可以结合 cron
或 launchd
来定时执行 rsync
,我也可以帮你写定时脚本。