AppleScript 可通过 do shell script 调用 df 命令获取启动盘可用空间(字节),乘以 512 得真实字节数,再除以 1073741824 换算为 GB 并保留一位小数,最后与预设阈值(如 20 GB)比较触发提醒。

可以用 AppleScript 写一个简洁可靠的脚本,定期检查磁盘剩余空间,并在低于阈值时提醒你。核心是获取指定卷的可用空间、换算成易读单位(如 GB),再与预设警戒值比较。
获取当前启动盘剩余空间
AppleScript 本身不直接提供字节到 GB 的转换函数,但可通过 do shell script 调用 macOS 原生命令 df 获取精确数据。以下语句返回启动卷(通常为 Macintosh HD)的可用字节数:
set freeBytes to do shell script "df -P / | awk 'NR==2 {print $4}'"
注意:df -P 输出格式稳定,awk 'NR==2' 取第二行(即实际挂载信息行),$4 是可用块数(以 512 字节为单位),所以需乘以 512 才得真实字节数:
set freeBytes to (do shell script "df -P / | awk 'NR==2 {print $4 * 512}'") as number- 若要检查其他卷(如“Data”),把
/换成/Volumes/Data
换算并判断是否低于警戒线
将字节数转为 GB(除以 1024³ ≈ 1,073,741,824),保留一位小数便于阅读:
set freeGB to round (freeBytes / 1073741824 * 10) / 10
使用 inotes CLI 从终端管理 Apple Notes。当需要在 macOS 的 Notes.app 中列出、读取、创建、编辑、删除或搜索备忘录时使用。
设定最低安全余量(例如 20 GB),用 if 判断触发提醒:
if freeGB- 也可改用
display notification实现无干扰提示:display notification "剩余 " & freeGB & " GB" with title "磁盘空间提醒"
封装为可重复运行的完整脚本
把以上逻辑整合,支持自定义卷名和阈值,方便复用:
property targetVolume : "/" -- 启动盘;改为 "/Volumes/MyDisk" 检查外置盘<br>property minFreeGB : 25.0<br><br>try<br> set freeBytes to (do shell script "df -P " & quoted form of targetVolume & " | awk 'NR==2 {print $4 * 512}'") as number<br> set freeGB to round (freeBytes / 1073741824 * 10) / 10<br> if freeGB < minFreeGB then<br> display notification "剩余 " & freeGB & " GB" with title "磁盘空间告警"<br> end if<br>on error errMsg<br> display alert "获取空间失败" message errMsg<br>end try
保存为 .scpt 文件后,可双击运行,或通过 Automator、launchd 或快捷指令调用。
进阶建议:自动定期检测
单纯手动运行意义有限。推荐两种轻量级定时方式:
-
用 launchd 创建后台计划任务:写一个 plist 文件放入
~/Library/LaunchAgents/,设置每小时执行一次该脚本 - 嵌入快捷指令(Shortcuts):用「运行 AppleScript」动作 + 「重复」循环(如每 3600 秒),适合 iOS/macOS 统一管理
- 避免高频轮询——每 30 分钟到 2 小时检查一次足够,既及时又不占资源
不复杂但容易忽略:首次运行前确认目标卷路径正确,且脚本有权限访问系统信息(macOS 13+ 可能需在「隐私与安全性」中允许自动化权限)。

















