macOS原生自动清理下载文件夹有四种方式:①Automator+日历定时删除7天前指定格式文件;②AppleScript安全清空未锁定普通文件;③终端脚本一键清空(不含子目录);④launchd后台静默定时执行。
mac 自动清理下载文件夹,核心是让系统在无人干预时识别并移除过期、冗余的文件,比如安装包(.dmg/.pkg)、压缩包(.zip/.tgz)、临时下载内容等,同时避开正在使用、被锁定或系统关键文件。不依赖第三方软件,用 macos 原生工具就能实现——关键是选对方式、设好条件、留出安全余量。
用 Automator 创建“快速操作”+日历定时触发
这是最友好、最稳定、无需命令行基础的方式,适合日常维护:
- 打开 Automator → 新建“快速操作” → 拖入“运行 Shell 脚本”操作
- 脚本内容写成:find ~/Downloads -type f \( -name "*.dmg" -o -name "*.pkg" -o -name "*.zip" \) -mtime +7 -delete(表示删除 7 天前的这三类文件)
- 右上角设定里勾选“工作流接收‘无输入’”,并开启“在‘访达’中可用”
- 保存为“清理旧安装包”;再打开“日历”,新建每天上午 9 点的重复提醒,在“提醒”中选择“运行快速操作”→选中刚保存的名字
- 注意:Mac 需保持唤醒且未启用低电量模式,否则日历可能不执行
用 AppleScript 批量删除非锁定文件(图形界面友好)
它在访达界面下运行,像人一样操作,只删没被锁住、不是 .DS_Store 的普通文件,安全性高:
- 打开“脚本编辑器”,粘贴以下代码:
- tell application "Finder"
set downloadsFolder to folder "Downloads" of home
set allItems to every item of downloadsFolder
repeat with anItem in allItems
if (locked of anItem is false) and (name of anItem is not ".DS_Store") then
delete anItem
end if
end repeat
end tell - 保存为“清空下载(安全版)”,双击即可运行——它会自动跳过正在被挂载的 .dmg 或已锁定的文件
用终端命令封装为可复用脚本(精准可控)
适合习惯命令行、需要灵活调整规则的用户,所有操作都在用户目录内,无需 sudo:
- 终端中执行:touch ~/clean_downloads.sh 创建脚本
- 用 nano ~/clean_downloads.sh 编辑,写入:
- #!/bin/bash
cd ~/Downloads
find . -maxdepth 1 ! -name "." ! -name ".DS_Store" ! -name "clean_downloads.sh" -type f -delete - 保存后执行:chmod +x ~/clean_downloads.sh,之后只需运行 ~/clean_downloads.sh 即可清空(不含子文件夹)
用 launchd 实现后台静默定时清理(最可靠)
不受图形界面是否开启影响,适合长期值守任务,例如每 12 小时清一次废纸篓或下载夹:
- 先创建一个清理脚本(如上面的 clean_downloads.sh),确保它可执行
- 终端中运行:mkdir -p ~/Library/LaunchAgents,再创建 plist 文件:touch ~/Library/LaunchAgents/com.user.downloads-clean.plist
- 用文本编辑器打开该 plist,填入标准 launchd 配置,指定 KeepAlive 和 StartInterval(如 43200 秒 = 12 小时)
- 加载任务:launchctl load ~/Library/LaunchAgents/com.user.downloads-clean.plist


















