applescript可通过do shell script调用df命令获取根目录剩余空间(字节或gb格式),支持阈值提醒、错误处理、日志记录及多卷检测,无需额外依赖。

AppleScript 可以直接调用 macOS 系统命令获取磁盘使用情况,无需额外依赖,适合做轻量级空间监控和自动提醒。
获取根目录剩余空间(字节与可读格式)
AppleScript 本身不直接解析磁盘数据,但能通过 do shell script 调用 df 命令。常用方式是提取 / 分区的可用字节数,并转为 GB 或带单位的字符串:
- 用
df -P / | tail -1 | awk '{print $4}'获取剩余字节数(KB 单位,需乘 1024) - 更稳妥写法:
df -k / | tail -1 | awk '{printf "%.1f", $4/1024/1024}'直接输出 GB,保留一位小数 - 若需显示“23.4 GB 可用”,可在 AppleScript 中拼接字符串,例如:
"剩余空间: " & gbFree & " GB"
设定阈值并触发提醒或动作
检测到剩余空间低于预设值(如 10 GB)时,可弹窗、播放声音或执行清理脚本:
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
- 用
if (gbFree as number) 判断是否低于阈值 - 弹窗提醒:
display alert "磁盘空间不足!" message "剩余 " & gbFree & " GB,建议清理。" - 播放系统提示音:
do shell script "afplay /System/Library/Sounds/Glass.aiff" - 调用 Shell 清理命令(谨慎):
do shell script "sudo purge" password "your_password" with administrator privileges(需提前配置免密或用户授权)
定期运行:配合 launchd 实现后台自动化
AppleScript 本身不能常驻运行,需借助 macOS 的 launchd 定时触发:
- 将 AppleScript 保存为 .scpt 文件(如
check_disk.scpt),再用osascript调用:osascript /path/to/check_disk.scpt - 创建
~/Library/LaunchAgents/com.user.diskcheck.plist,设置StartInterval为 3600(每小时一次) - 加载任务:
launchctl load ~/Library/LaunchAgents/com.user.diskcheck.plist - 注意:首次运行可能因权限被系统拦截,需在“系统设置 > 隐私与安全性 > 自动化”中允许 Terminal 或 Script Editor 控制 Finder/系统事件
增强实用性的小技巧
让脚本更可靠、易维护:
- 避免硬编码路径,用
(path to home folder as text)获取用户主目录,适配不同用户名 - 检查命令是否成功执行,用
try ... on error捕获df失败(如外挂卷断开) - 日志记录很简单:
do shell script "echo $(date): " & gbFree & " GB >> ~/Desktop/disk_log.txt" - 想看多个卷?循环遍历
diskutil list -plist输出或固定路径(如/Volumes/Media),分别调用df -k










