Thursday, September 4, 2025
HomeGuest BlogsFind and delete files older than n days in Linux

Find and delete files older than n days in Linux

In this guide, we’ll look at how to Delete files older than n days in Linux. The most common use case for this is deleting rotated logs which are older than a certain number of days or removing old backups to clear space for more recent backups.

So let’s consider an example. I’ll search for files under /var/log with an extension of .tar.gz older than 7 days and delete them. I’ll use find command to search for the files.

# find /var/log/ -name *.gz -mtime +7 -exec rm -rf {} \;

-mtime option is used to specify last modification of file; i.e  n*24 hours ago. +7 means older than 7 days.

-exec option is used to execute a command in find. The command being executed here is rm -f

The last {} \; means loop through the list of items.

If you want to list the files without deleting them, use the command:

# cd /var/log
# find . -type f -mtime +7d -ls

To find and delete files bigger than a specified size and older than n number of days, use -size option: For example:

# find /var/log/ -name *.gz -mtime +7  -size +1G -exec rm -rf {} \;

Note that it is possible to save the list of files into a variable before deleting them.

# file_list=`find . -name *.gz -type f -mtime +7`
# for i in ${file_list[@]}; do
  echo "Deleting $i file"
  rm $i
done

For more find options, refer to its man page:

# man find

More guides on Linux system administration:

RELATED ARTICLES

Most Popular

Dominic
32261 POSTS0 COMMENTS
Milvus
81 POSTS0 COMMENTS
Nango Kala
6626 POSTS0 COMMENTS
Nicole Veronica
11795 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11855 POSTS0 COMMENTS
Shaida Kate Naidoo
6747 POSTS0 COMMENTS
Ted Musemwa
7023 POSTS0 COMMENTS
Thapelo Manthata
6695 POSTS0 COMMENTS
Umr Jansen
6714 POSTS0 COMMENTS