applescript通过调用macos命令行工具实现安全可控的冗余文件清理:1.扫描指定目录中临时文件(如.tmp、.log)并预览确认删除;2.筛选大而旧文件(>500mb且>90天)供用户多选删除并显示释放空间;3.在单文件夹内基于大小+md5检测重复文件。

AppleScript 本身不擅长直接处理文件系统扫描或复杂条件判断(比如按大小、日期、重复内容识别冗余文件),但它可以很好地调用 macOS 原生命令行工具(如 find、du、md5)和 shell 脚本逻辑,再通过 AppleScript 提供用户交互(如确认对话框、选取文件夹、显示进度)。下面是一个实用、安全、可定制的自动化清理脚本方案,聚焦常见冗余场景:临时文件、缓存、重复下载项、大而旧的文件。
1. 清理指定目录下的常见冗余文件类型
这类文件通常有固定扩展名或命名特征(如 .tmp、~、.DS_Store、.log),适合用 find 快速定位:
- 脚本先让用户选择目标文件夹(默认为「下载」或「文稿」)
- 执行 shell 命令查找并列出匹配文件(仅预览,不删除)
- 弹出确认框,显示文件数量和示例路径,用户点击“继续”才执行删除
- 支持自定义扩展名列表,例如:
{"*.tmp", "*.log", ".DS_Store", "*~"}
2. 查找并提示删除「大而旧」的文件(如 >500MB & 修改时间 >90 天)
这类文件占用空间多但可能已无用。AppleScript 可调用 find 结合 -size 和 -mtime 参数筛选:
查询 Apple 开发者文档、API 与 2014‑2025 年 WWDC 视频,搜索 SwiftUI、UIKit、Objective‑C、Swift 框架及 watch 会话。
- 用
do shell script "find ... -size +500M -mtime +90 -print"获取候选列表 - 限制最多显示前 20 条(避免列表过长卡住 AppleScript)
- 用
choose from list让用户勾选要删的项(支持多选),增强可控性 - 删除前再次确认总大小(例如:“将释放约 2.4 GB 空间”)
3. 检测同一文件夹内的重复文件(基于文件大小 + MD5)
AppleScript 不直接算哈希,但可组合 find + md5 + awk 实现轻量级去重提示:
- 只在用户选定的单个文件夹内运行(不递归子文件夹,避免性能问题)
- 先按大小分组,跳过 0 字节或极小文件(如
- 对同大小文件计算 MD5,列出所有哈希相同的文件路径
- 以表格形式展示(文件名、大小、修改时间),标注“疑似重复”,由用户决定保留哪个、删哪些
4. 安全机制与用户友好设计
自动化清理最怕误删。这个脚本内置多重防护:
- 所有删除操作均使用
rm -i或先移入废纸篓(推荐用mv到~/.Trash,更安全) - 关键步骤加日志:生成简易报告(如
cleanup_report_20241022.txt),记录删了什么、何时删、共释放多少空间 - 禁用对系统目录(
/System、/usr、/bin)和 Time Machine 备份盘的写入权限检查 - 超时保护:shell 命令设置 30 秒执行上限,防止卡死
不复杂但容易忽略——真正可靠的清理脚本,核心不在“自动”,而在“可知、可控、可逆”。用 AppleScript 搭配 shell,刚好兼顾界面交互与底层能力。实际使用时,建议先在测试文件夹运行一次,确认逻辑符合预期再用于主目录。










