He creado un agente de lanzamiento que utiliza el comando find para buscar en la carpeta de descargas de un usuario
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`)
Aquí está el archivo plist que he añadido a la carpeta LaunchAgents con un intervalo de 10 segundos para ayudar a la depuración.
<!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>
Cada vez que se ejecuta el LaunchAgent se obtiene el error find: .: Operation not permitted
Sin embargo, la ejecución del /Library/Application Support/downloadsCleanup/downloadsCleanup.sh
script de la terminal me pide que dé permiso a la terminal para acceder a la carpeta de descargas. Una vez concedido el permiso el script funciona como es debido.
He añadido el archivo .plist y el .sh script para tener acceso total al disco pero eso no ha cambiado nada. ¿Qué tengo que dar acceso para que este launchAgent pueda ejecutar el comando find en la carpeta de descargas?