使用 Mac OS X `at` 安排每日任务来清除 .Trash 文件夹

使用 Mac OS X `at` 安排每日任务来清除 .Trash 文件夹

如何使用 OS Xat命令安排每日清理用户.Trash文件夹?

我正在思考类似的事情:

rm -rf ~/.Trash/**/* | at 0:00 + 1 day

这样能每天清理垃圾吗?

我们将把此命令作为登录脚本的一部分运行,因此我还需要一种方法来清除所有计划任务。有办法吗at -r all

答案1

rm -rf ~/Trash/*通常会导致权限被拒绝错误,除非您以 root 身份运行它。osascript -e 'tell app "Finder" to empty trash'如果某些文件正在使用中,也会显示错误对话框。

您可以尝试添加0 0 * * * rm -rf ~/Trash/*到 root 的 crontab ( sudo crontab -e)。

或者使用 launchd,将这样的属性列表保存为/Library/LaunchAgents/empty_trash.plist(并使其由 root 拥有):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
    <key>EnableGlobbing</key>
    <true/>
    <key>Label</key>
    <string>empty_trash</string>
    <key>ProgramArguments</key>
    <array>     
        <string>rm</string>
        <string>-rf</string>
        <string>/Users/username/Trash/*</string> <!-- ~/ doesn't work -->
    </array>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>0</integer>
        <key>Minute</key>
        <integer>0</integer>
    </dict>
</dict>
</plist>

它会在下次登录时自动加载,但您可以使用 立即加载它sudo launchctl load /Library/LaunchAgents/empty_trash.plist

还有自动清空垃圾箱的选项。

相关内容