Skip to content

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 导出照片

  1. 用数据线连接 iPhone 到 Mac
  2. 打开 图像捕捉(Launchpad 里搜索"图像捕捉")
  3. 左侧选择你的 iPhone
  4. Cmd + A 全选所有照片
  5. 右下角"导入到"选择 "原片"
  6. 点击"全部导入",目标路径选 ~/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

以后每次备份,只需要:

  1. 插手机 → 图像捕捉导出到 待整理
  2. 双击运行 backup.sh

两步搞定。

第六步(可选):伪装成 App(放在 Dock 上,带图标)

虽然 backup.sh 已经能一键运行,但每次要打开终端敲命令,还是不够方便。我们可以把脚本包装成一个“伪 App”,放在 Dock 上,点一下就能跑,还能换图标。

操作步骤

1. 用 Automator 打包成 App

  1. 打开 Automator(Launchpad 里搜索)
  2. 新建文稿 → 选择 “应用程序”
  3. 左侧搜索“AppleScript”,把 “运行 AppleScript” 拖到右侧工作区
  4. 把下面的 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 的真实路径。

  1. Cmd + S 保存,命名为 “照片备份”,格式选“应用程序”,保存到“应用程序”文件夹

自动运行设置

2. 替换图标

  1. macosicons.com 搜索 backupphoto,下载一个喜欢的 .icns 文件
  2. 右键点击刚生成的 照片备份.app“显示简介”
  3. 把下载的 .icns 文件拖到左上角的小图标上,替换默认图标

3. 拖到 Dock

从“应用程序”文件夹把 照片备份.app 拖到 Dock 上,以后点一下就能跑。

效果

  • Dock 上显示你选的图标,看起来和普通 App 没区别
  • 点击后自动打开终端,显示完整进度
  • 跑完后终端窗口保持打开(可手动关闭)

Mac整理iPhone照片

为什么用 AppleScript 而不是直接执行 Shell?

方式优点缺点
Automator 直接执行 Shell简单终端一闪而过,看不到进度
AppleScript(你用的)终端窗口保持打开,能看到完整输出,路径传参更可靠多一层 AppleScript 包装

AppleScript 更适合需要实时查看进度的场景,比如照片备份这种耗时操作。

最终目录结构

移动硬盘/
└── 照片库/
    ├── 20260731/
    │   ├── IMG_0001.HEIC
    │   ├── IMG_0001.AAE
    │   ├── IMG_0001.MOV
    │   └── ...
    ├── 20260801/
    └── 清单_待整理_已归类_20260731.txt

写在最后

整套流程的核心就三件事:导出 → 归档 → 存盘。一次配置好,以后每次备份都是重复执行,不需要手动建文件夹、不需要担心照片散落。

如果你和我一样,不想把照片全托付给 iCloud 或百度网盘,这套本地方案够用、可靠、速度快。👍

如果转载,保留出处就行。有问题可以提 Issue 或直接联系我。

Released under the MIT License.