要在Mac上用rsync安全同步本地文件夹,需正确设置带尾斜杠的源路径以避免嵌套,并确认rsync已预装或通过xcode-select --install安装;基础命令为rsync -av /src/ /dst/,可配合--exclude、--exclude-from、--delete(先--dry-run验证)、-u等选项实现精准增量同步。

要在Mac上用rsync命令把一个本地文件夹的内容完整、安全地同步到另一个本地文件夹,必须正确设置源路径和目标路径,避免因斜杠位置错误导致目录被嵌套复制或内容清空。
确认rsync已可用
macOS自10.15(Catalina)起已预装rsync,终端中直接输入rsync --version回车,看到类似rsync version 2.6.9的输出即表示可用。若提示command not found,请先安装Xcode命令行工具:xcode-select --install。
基础同步:保留结构与属性
第一步:打开“终端”应用(可通过聚焦搜索「终端」启动)。
第二步:执行以下命令(将/path/to/source/和/path/to/dest/替换为你的真实路径):
rsync -av /path/to/source/ /path/to/dest/
注意末尾斜杠——【源路径末尾带/表示同步其内部所有内容;不带/则会把整个source文件夹作为子目录复制进去】。目标路径末尾带/与否不影响结构,但建议统一加/避免歧义。
排除不需要同步的文件
方法一:用--exclude跳过特定类型
rsync -av --exclude='.DS_Store' --exclude='*.tmp' /src/ /dst/
方法二:用--exclude-from批量排除(适合规则多时)
先新建一个文本文件(如exclude.txt),每行写一个排除模式(如.git/、node_modules/),保存后运行:rsync -av --exclude-from='exclude.txt' /src/ /dst/。
增量同步并删除目标中多余文件
启用--delete选项后,rsync会比对源与目标,把目标里源中已不存在的文件或文件夹彻底删除。
rsync -av --delete /path/to/source/ /path/to/dest/
【该操作不可逆!务必先用--dry-run模拟一次】:在命令末尾加上--dry-run,例如rsync -av --delete --dry-run /src/ /dst/,它会列出将要删除的文件但不真正执行。
同步时跳过已存在的同名文件
使用-u(update)参数,仅当源文件比目标文件新,或目标文件不存在时才传输:
rsync -avu /src/ /dst/
这能有效节省时间,尤其在反复同步大型文件夹时。但注意:如果目标文件被意外修改过且时间戳未更新,rsync不会覆盖它——此时需人工判断是否需要强制同步。

















