
¿Cómo uso el at
comando OS X para programar una limpieza diaria de la .Trash
carpeta del usuario?
Estoy pensando en algo como:
rm -rf ~/.Trash/**/* | at 0:00 + 1 day
¿Esto limpiará la basura todos los días?
Ejecutaremos este comando como parte de un script de inicio de sesión, por lo que también necesito una forma de borrar todas las tareas programadas. ¿Hay alguna manera de hacerlo at -r all
?
Respuesta1
rm -rf ~/Trash/*
a menudo resulta en errores de permiso denegado a menos que lo ejecute como root. osascript -e 'tell app "Finder" to empty trash'
También mostraría un cuadro de diálogo de error si algunos archivos están en uso.
Podría intentar agregar 0 0 * * * rm -rf ~/Trash/*
al crontab de la raíz ( sudo crontab -e
).
O usando launchd, guarde una lista de propiedades como esta como /Library/LaunchAgents/empty_trash.plist
(y hágala propiedad de 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>
Se carga automáticamente en el siguiente inicio de sesión, pero puedes cargarlo inmediatamente con sudo launchctl load /Library/LaunchAgents/empty_trash.plist
.
Color avellanaTambién tiene opciones para vaciar la papelera automáticamente.