
Como uso o at
comando do OS X para agendar uma limpeza diária da .Trash
pasta do usuário?
Estou pensando em algo como:
rm -rf ~/.Trash/**/* | at 0:00 + 1 day
Isso limpará o lixo todos os dias?
Estaremos executando este comando como parte de um script de login, então também preciso de uma maneira de limpar todas as tarefas agendadas. Existe uma maneira de fazer isso at -r all
?
Responder1
rm -rf ~/Trash/*
geralmente resulta em erros de permissão negada, a menos que você o execute como root. osascript -e 'tell app "Finder" to empty trash'
também mostraria uma caixa de diálogo de erro se alguns arquivos estivessem em uso.
Você pode tentar adicionar 0 0 * * * rm -rf ~/Trash/*
ao crontab do root ( sudo crontab -e
).
Ou usando o launchd, salve uma lista de propriedades como esta como /Library/LaunchAgents/empty_trash.plist
(e torne-a propriedade do 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>
Ele é carregado automaticamente no próximo login, mas você pode carregá-lo imediatamente com sudo launchctl load /Library/LaunchAgents/empty_trash.plist
.
Avelãtambém possui opções para esvaziar a lixeira automaticamente.