可使用applescript调用finder的empty trash命令安全清空废纸篓;基础脚本无确认提示,增强版含用户确认与错误处理,配合launchd可定时执行,但会清空所有挂载卷废纸篓且不可逆。
可以使用 applescript 调用 macos 原生命令来安全清空废纸篓(即“回收站”),无需第三方工具。核心是通过 osascript 执行 applescript,并借助 finder 的 empty trash 命令。
基础脚本:一键清空废纸篓
以下 AppleScript 会直接清空当前用户的废纸篓,执行前不会弹出确认对话框(系统默认行为):
tell application "Finder"
empty trash
end tell
保存为 clear-trash.scpt,终端中运行:
增强版:带确认提示与错误处理
更稳妥的做法是先询问用户,再执行;同时捕获 Finder 未响应等异常:
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
try
if button returned of (display dialog "确定要永久清空废纸篓吗?" buttons {"取消", "清空"} default button "取消") is "清空" then
tell application "Finder"
empty trash
end tell
display notification "废纸篓已清空" with title "清理完成"
end if
on error errMsg
display alert "操作失败:" & errMsg
end try
定时自动清理(配合 launchd)
AppleScript 本身不支持后台定时,需结合 macOS 的 launchd 实现自动化:
- 将上述脚本保存为
/Users/你的用户名/bin/clear-trash.scpt - 创建 plist 文件
~/Library/LaunchAgents/com.user.cleartrash.plist,内容如下:
<?xml version="1.0" encoding="UTF-8"?><plist version="1.0"><dict><key>Label</key><string>com.user.cleartrash</string><key>ProgramArguments</key><array><string>osascript</string><string>/Users/你的用户名/bin/clear-trash.scpt</string></array><key>StartCalendarInterval</key><dict><key>Hour</key><integer>2</integer><key>Minute</key><integer>30</integer></dict><key>RunAtLoad</key><false></false></dict></plist>
加载任务:
launchctl load ~/Library/LaunchAgents/com.user.cleartrash.plist注意事项与安全建议
- 清空废纸篓后文件无法通过 Finder 恢复,如需保留恢复能力,请先启用 Time Machine 或使用备份工具
- 脚本对所有已挂载卷的废纸篓生效(包括外接硬盘),若只想清空主磁盘,需改用 shell 方式逐个判断路径
- 若 Finder 正在忙(如拷贝中),
empty trash可能静默失败,增强版中的try/on error可捕获该情况 - 避免在无人值守服务器或共享 Mac 上设置自动清空,防止误删










