Mac系统可用终端命令快速比对两文件夹差异:用diff+find按文件名逐个校验内容并识别独有文件,或用rsync -rn模拟同步列出所有文件级差异(存在性、大小、时间),后者支持递归且更可靠。

当你需要确认两个文件夹是否包含完全相同的文件,比如检查备份是否完整、验证部署包是否遗漏或识别开发环境与测试环境的文件偏差时,Mac系统自带命令和轻量工具就能快速定位新增、缺失、重命名或内容变更的文件。
用终端 diff + find 批量比对同名文件内容
该方法适用于两个文件夹结构相似、同名文件需逐个校验内容是否一致的场景,不依赖安装任何第三方软件。
第一步:打开“终端”,执行以下复合命令(将 【/path/to/folder1】 和 【/path/to/folder2】 替换为你的实际路径):
find "/path/to/folder1" -type f | while read f1; do base=$(basename "$f1"); f2="/path/to/folder2/$base"; if [ -f "$f2" ]; then diff -q "$f1" "$f2" || echo "内容不同: $base"; else echo "仅存在于 folder1: $base"; fi; done
第二步:再运行反向扫描,找出只在 folder2 中存在而 folder1 中没有的文件:
find "/path/to/folder2" -type f | while read f2; do base=$(basename "$f2"); f1="/path/to/folder1/$base"; [ ! -f "$f1" ] && echo "仅存在于 folder2: $base"; done
注意:此脚本不处理子目录嵌套同名文件(如 folder1/a/b.txt 与 folder2/b.txt),仅按文件名匹配。若路径层级不一致,结果会漏判——必须确保你要比对的是扁平化同名集合,或提前用 rsync --list-only 等预检结构。
用 rsync 模拟同步来发现差异
rsync 虽不显示内容差异,但能极速列出所有文件级差异(大小、修改时间、存在性),且天然支持递归和符号链接,比纯 find 更可靠。
在终端中输入:
rsync -rn --delete "/path/to/folder1/" "/path/to/folder2/" 2>/dev/null | sed 's/^/→ /'
这条命令会模拟一次同步操作(-n 表示不真实写入),输出中以 >f++++++++ 表示 folder2 缺失的文件, 如果 folder1 是源、folder2 是目标,那所有以 > 开头的行就是 folder2 少的文件;以
如果你频繁做文件夹比对,尤其是含二进制文件、需跳转查看差异详情、或要同步修复的场景,Beyond Compare 是目前 Mac 上最稳定高效的方案。 方法一:直接拖拽启动 下载安装 Beyond Compare 后,打开应用 → 点击主界面“文件夹比较” → 将左侧文件夹拖入左窗格,右侧文件夹拖入右窗格 → 点击工具栏绿色双向箭头按钮开始比对。 方法二:终端快速调起(需配置 bc3 命令) 先在 Beyond Compare 安装目录执行 sudo ./install.sh(路径通常为 /Applications/Beyond\ Compare.app/Contents/Resources/install.sh),完成后即可在终端输入:bcompare -folder1 "/path/to/folder1" -folder2 "/path/to/folder2" 比对结果中,灰色图标表示相同,红色(≠)表示内容不同,蓝色(+)表示仅左侧存在,绿色(–)表示仅右侧存在。双击任意文件,自动进入内嵌文本/十六进制/图片比对视图——无需切换应用,也不用记忆命令参数。用 Beyond Compare 图形化对比(推荐长期使用)

















