Я хотел бы сделать так, чтобы содержимое документов и папки рабочего стола стандартной учетной записи пользователя на Mac удалялось каждый день, скажем, в полночь. Как я могу сделать это?
2 ответа
~/Library/LaunchAgents/me.lri.clear.desktop.and.documents.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>me.lri.clear.desktop.and.documents</string>
<key>ProgramArguments</key>
<array>
<string>osascript</string>
<string>-e</string>
<string>say "lol"</string>
<!-- <string>tell application "Finder"
move items of desktop to trash
move items of (path to documents folder) to trash
end tell</string> -->
</array>
<key>StartInterval</key>
<integer>5</integer> <!-- every 5 seconds -->
<!-- <key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>23</integer>
<key>Minute</key>
<integer>0</integer>
</dict> -->
</dict>
</plist>
Агент будет загружен после выхода и повторного входа или после запуска launchctl load ~/Library/LaunchAgents/me.lri.clear.desktop_and.documents.plist
.
См. man launchctl
и man launchd.plist
для получения дополнительной информации.
Другой вариант - добавить что-то вроде этого в ваш crontab:
0 0 0 * * osascript -e 'tell app "Finder"' -e 'move items of desktop to trash' -e 'move items of (path to documents folder) to trash' -e 'end'
(Вы можете сохранить это как ~/.crontab
, а затем запустить crontab ~/.crontab
)
Это должно быть довольно просто с заданием cron, вызывающим скрипт оболочки, который удаляет содержимое указанных каталогов
У меня нет Mac, но я считаю, что Mac поставляются с BASH-совместимой оболочкой. Так что-то вроде этого:
#!/bin/bash
rm /path/to/directory1
rm /path/to/directory2
...etc...
Я не уверен, использует ли оболочка Mac классическую схему пути к файлу * nix (/blah/blah) или схему, используемую Finder (blah:blah); это то, что вы можете посмотреть. Команда rm
не удалит подкаталоги или их содержимое, если вы захотите сделать это, используйте -r
.