Ich habe einen Startagenten erstellt, der den Befehl find verwendet, um im Download-Ordner eines Benutzers zu suchen
files_to_remove=(`cd ~/Downloads/ && find . \( -name "*.csv" -or -name "*.pdf" -or -name "*.sav" -or -name "*.tsv" -or -name "*.zip" -or -name "*.qsf" \) -mtime +5`)
Hier ist die plist-Datei, die ich dem LaunchAgents-Ordner mit einem 10-Sekunden-Intervall hinzugefügt habe, um beim Debuggen zu helfen.
<!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>local.downloadsCleanup</string>
<key>Program</key>
<string>/Library/Application Support/downloadsCleanup/downloadsCleanup.sh</string>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/downloadsCleanup.err</string>
<key>StandardOutPath</key>
<string>/tmp/downloadsCleanup.out</string>
<key>StartInterval</key>
<integer>10</integer>
</dict>
</plist>
Jedes Mal, wenn der LaunchAgent ausgeführt wird, wird der Fehler angezeigt find: .: Operation not permitted
. Beim Ausführen des /Library/Application Support/downloadsCleanup/downloadsCleanup.sh
Skripts vom Terminal werde ich jedoch aufgefordert, dem Terminal die Erlaubnis zu erteilen, auf den Download-Ordner zuzugreifen. Sobald die Berechtigung erteilt wurde, funktioniert das Skript wie vorgesehen.
Ich habe die .plist-Datei und das .sh-Skript hinzugefügt, um vollen Festplattenzugriff zu haben, aber das hat nichts geändert. Was benötige ich, um diesem LaunchAgent Zugriff zu gewähren, damit er den Find-Befehl im Download-Ordner ausführen kann?
Ja, müssen Sie verwenden
Systemeinstellungen -> Sicherheit und Datenschutz -> Datenschutz -> Dateien & Ordner
Oder vielleicht können Sie dort für das letzte Element "Full Disk Access" angeben.
Gewähren Sie /bin/bash Zugriff, und es sollte funktionieren.
Josch
Becko