Использование Mac OS X `at` для планирования ежедневных задач по очистке папок.Trash
Как я использую OS X at
команда для планирования ежедневной очистки пользователя .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/*
в кронтаб корня (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
,
У Хейзел также есть опции для автоматического удаления мусора.