Dec 092009

Delete all directories more than a week old

This simple linux bash script will delete subdirectories in a directory based on when the subdirectory was last modified.
In my sample script, it looks in the directory /home/backup and deletes any directories older than 7 days. Replace 7 with the number of days of your choosing!

for i in `find /home/backup/ -maxdepth 1 -type d -mtime +7 -print`; do echo -e "Deleting directory $i";rm -rf $i; done

Just to explain:

* -maxdepth 1 = list only files/directories in 1 level from main search directory
* -type d = list only directories
* -mtime +7 = modified time of more than 7 days
* -print = print out list; so we can then process the list with our bash script

This is useful for backup programs which do not clean up their old backups.

 Posted by at 11:08 pm