2

Я хотел бы сделать так, чтобы содержимое документов и папки рабочего стола стандартной учетной записи пользователя на Mac удалялось каждый день, скажем, в полночь. Как я могу сделать это?

2 ответа2

5

~/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)

0

Это должно быть довольно просто с заданием cron, вызывающим скрипт оболочки, который удаляет содержимое указанных каталогов

У меня нет Mac, но я считаю, что Mac поставляются с BASH-совместимой оболочкой. Так что-то вроде этого:

#!/bin/bash
rm /path/to/directory1
rm /path/to/directory2
...etc...

Я не уверен, использует ли оболочка Mac классическую схему пути к файлу * nix (/blah/blah) или схему, используемую Finder (blah:blah); это то, что вы можете посмотреть. Команда rm не удалит подкаталоги или их содержимое, если вы захотите сделать это, используйте -r .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .