Delete files that are x days old

September 6, 2013 — 4 Comments

Sometimes in Linux, you want to clear out older files in a directory. One instance would be if you have a security system and it continuously writes video files to a directory on your NAS (Network Attached Storage) until it fills it up. You’ve figured out that if you keep a week’s worth of video, it will usually leave plenty of space for other users.

What I would suggest here is creating a cron job that runs every night and runs something like the following command:

What it all means:
find: the command that will search for the files
/path/to/files/: the top level directory to start searching
-type f: so we don’t remove directories, only files
-mtime +7: files older than ’7′ days. Change to ‘+14′ to delete files older than 2 weeks.
-exec: what to do with the files we find
rm -rf: remove them recursively, force
{}: this represents each file we find
\;: the end of the exec

SO – the crontab entry would be this:

This will run every night at 2am.

Related posts from Linux Brigade!

  • Untangle your networkUntangle your network Whether you’re the admin of your office network or your home network (or both), it’s always a good idea to have security and order in place. Untangle is software that you can install as […]
  • Back up all of your mysql databases nightlyBack up all of your mysql databases nightly Have you ever wanted to make your own MySQL database backups?  You can use this script I wrote to make a backup of all databases, then save each one in a dated backup directory.  It will […]
  • Lock down your SSH port/accessLock down your SSH port/access The instant a Linux server is connected to a public network it starts getting hit by attackers. There are people out there running programs constantly against IP ranges and they’ve hit […]
  • Run fsck on a XenServer Virtual MachineRun fsck on a XenServer Virtual Machine You hope that you won’t ever need to, but you may one day need to run fsck on a Linux XenServer VM that won’t boot.. no worries, attach the storage from that VM on another VM and run it […]
  • Download CentOS 7 Nightly BuildsDownload CentOS 7 Nightly Builds As the CentOS folks are working on releasing a final version of CentOS 7, you can get in on the action and download their nightly builds. We’re estimating (guessing? Based on previous […]

4 responses to Delete files that are x days old

  1. Finally….I can free up so much space from my Linux now. I’m relatively new to Linux so 90% of the time I have no idea what I’m doing haha. Thanks for posting this.

  2. Wow this is a great use of the cron job. I’m definitely keeping this command because it’d be great for any type of server that keeps old files or constant backups. For example a Minecraft server that does backups every hour. Then you could have it delete all saves older than few days or a week. Not to mention how useful this could be for managing all sorts of backups. Bookmarked for sure.

  3. Thanks so much for posting this,

    It has helped me out so much,

    I’ve freed up so much space thanks to you.

    Eoin

  4. This looks incredibly useful! I’ve wanted to be able to do something like this before, but I didn’t realize it was actually possible. I should’ve realized it was. Linux is awesome like that.

Leave a Reply