The Dumping Ground
Life and code.
-
How To Automatically Clean Your macOS Downloads Folder
Posted on March 27th, 2017 No commentsI download a lot of crap, and it ends up in my Downloads folder. I used to use Hazel to keep my Downloads and Trash clean, but it was overkill: Hazel is a much more powerful tool than I needed. With the relatively recent addition to macOS to automatically remove items from the trash after 30 days I was left with just my downloads folder.
So I wrote a script.
#!/usr/bin/env bash folderName="${1:-$HOME/Downloads}" olderThan="${2:-7}" find "$folderName" -type f -ctime "+${olderThan}" -not -name '.*' -exec rm '{}' ';' find "$folderName" -type d -empty -not -name '.*' -exec rmdir '{}' ';'
Then, I installed it as a regularly-running launchd agent.
<?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>net.ardvaark.autocleandownloads</string> <key>ProgramArguments</key> <array> <string>/Users/bvargas/Documents/Misc/AutoCleanDownloads/auto-clean-downloads.sh</string> </array> <key>Nice</key> <integer>1</integer> <key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>03</integer> </dict> </dict> </plist>
Which I then copied to ~/Library/LaunchAgents/net.ardvaark.autocleandownloads.plist, and installed with the command:
launchctl load ~/Library/LaunchAgents/net.ardvaark.autocleandownloads.plist
And now my Mac automatically cleans my download folder of anything older than a week every morning at three o’clock.