Mac整理iPhone照片
准备工作
在电脑上建好三个目录:
~/Downloads/待整理 ← 照片导出的临时目录
~/Downloads/待整理_已归类 ← 整理后的照片存放目录
~/Downloads/code/ ← 放脚本的地方把以下两个项目克隆到 code 目录:
cd ~/Downloads/code
git clone https://github.com/babytutu/photo-dater.git
git clone https://github.com/babytutu/ls-tree.git安装 photo-dater 的依赖:
cd ~/Downloads/code/photo-dater
npm install第一步:从 iPhone 导出照片
- 用数据线连接 iPhone 到 Mac
- 打开 图像捕捉(Launchpad 里搜索"图像捕捉")
- 左侧选择你的 iPhone
- 按
Cmd + A全选所有照片 - 右下角"导入到"选择 "原片"
- 点击"全部导入",目标路径选
~/Downloads/待整理
等待导出完成,所有照片和视频都在 待整理 目录里了。
第二步:按日期归档
打开终端,执行:
cd ~/Downloads/code/photo-dater
npm start脚本会自动:
- 扫描
~/Downloads/待整理里的所有照片、视频、AAE 文件 - 按拍摄日期创建文件夹(格式:
20260731) - 把文件移动到
~/Downloads/待整理_已归类对应的日期文件夹里 - 同名文件自动重命名(加
_1、_2后缀)
进度条会显示处理进度,跑完后终端会打印出目录结构。
第三步:生成目录清单
cd ~/Downloads/code/ls-tree
node tree.js --auto --target ~/Downloads/待整理_已归类会在 待整理_已归类 目录下生成一个 清单_待整理_已归类_20260731.txt 文件,内容包含:
- 所有子文件夹的名称
- 每个文件夹里的文件数量
- 总文件夹数和总文件数
第四步:存入移动硬盘
打开 ~/Downloads/待整理_已归类,把整个文件夹一次性拖到移动硬盘里。
拖完后可以删除 待整理 和 待整理_已归类 两个临时目录,下次备份重新建。
第五步(可选):一键自动化
新建 ~/Downloads/code/backup.sh:
#!/bin/zsh
export PATH="/usr/local/bin:$PATH"
echo "📸 开始照片归档..."
cd ~/Downloads/code/photo-dater && npm start
echo "🌳 开始生成目录清单..."
cd ~/Downloads/code/ls-tree && node tree.js --auto --target ~/Downloads/待整理_已归类
echo "🎉 全部完成!"给执行权限:
chmod +x ~/Downloads/code/backup.sh以后每次备份,只需要:
- 插手机 → 图像捕捉导出到
待整理 - 双击运行
backup.sh
两步搞定。
第六步(可选):伪装成 App(放在 Dock 上,带图标)
虽然 backup.sh 已经能一键运行,但每次要打开终端敲命令,还是不够方便。我们可以把脚本包装成一个“伪 App”,放在 Dock 上,点一下就能跑,还能换图标。
操作步骤
1. 用 Automator 打包成 App
- 打开
Automator(Launchpad 里搜索) - 新建文稿 → 选择 “应用程序”
- 左侧搜索“AppleScript”,把 “运行 AppleScript” 拖到右侧工作区
- 把下面的 AppleScript 完整粘贴进去:
applescript
on run {input, parameters}
set scriptPath to "/Users/你的用户名/Downloads/backup.sh"
tell application "Terminal"
activate
do script "chmod +x " & quoted form of scriptPath & " && " & quoted form of scriptPath
end tell
return input
end run注意:把
你的用户名改成你实际的用户名,或者直接把路径写死成你backup.sh的真实路径。
- 按
Cmd + S保存,命名为 “照片备份”,格式选“应用程序”,保存到“应用程序”文件夹

2. 替换图标
- 去 macosicons.com 搜索
backup或photo,下载一个喜欢的.icns文件 - 右键点击刚生成的
照片备份.app→ “显示简介” - 把下载的
.icns文件拖到左上角的小图标上,替换默认图标
3. 拖到 Dock
从“应用程序”文件夹把 照片备份.app 拖到 Dock 上,以后点一下就能跑。
效果:
- Dock 上显示你选的图标,看起来和普通 App 没区别
- 点击后自动打开终端,显示完整进度
- 跑完后终端窗口保持打开(可手动关闭)

为什么用 AppleScript 而不是直接执行 Shell?
| 方式 | 优点 | 缺点 |
|---|---|---|
| Automator 直接执行 Shell | 简单 | 终端一闪而过,看不到进度 |
| AppleScript(你用的) | 终端窗口保持打开,能看到完整输出,路径传参更可靠 | 多一层 AppleScript 包装 |
AppleScript 更适合需要实时查看进度的场景,比如照片备份这种耗时操作。
最终目录结构
移动硬盘/
└── 照片库/
├── 20260731/
│ ├── IMG_0001.HEIC
│ ├── IMG_0001.AAE
│ ├── IMG_0001.MOV
│ └── ...
├── 20260801/
└── 清单_待整理_已归类_20260731.txt写在最后
整套流程的核心就三件事:导出 → 归档 → 存盘。一次配置好,以后每次备份都是重复执行,不需要手动建文件夹、不需要担心照片散落。
如果你和我一样,不想把照片全托付给 iCloud 或百度网盘,这套本地方案够用、可靠、速度快。👍
如果转载,保留出处就行。有问题可以提 Issue 或直接联系我。
