![使用 Mac OS X `at` 安排每日任务来清除 .Trash 文件夹](https://linux22.com/image/1352692/%E4%BD%BF%E7%94%A8%20Mac%20OS%20X%20%60at%60%20%E5%AE%89%E6%8E%92%E6%AF%8F%E6%97%A5%E4%BB%BB%E5%8A%A1%E6%9D%A5%E6%B8%85%E9%99%A4%20.Trash%20%E6%96%87%E4%BB%B6%E5%A4%B9.png)
如何使用 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
。
榛还有自动清空垃圾箱的选项。