
This blog post will teach you how to use find command to find files by access time in Linux. You will learn how to use the -atime option to specify the access time criteria, and how to use various other options to filter the results.
- find can match by inode timestamps
- -atime when file was last read
- -mtime when file data last changed
- -ctime when file data or metadata last changed
- Value given is in days
- find /tmp -ctime +10
- files changed more than 10 days ago
- find /tmp -ctime +10
- Can use a vlue of minutes
- -amin
- -mmin
- -cmin
- find /etc -amin -60
Examples of find timestamp-matching criteria are given in the previous Post Find and Numeric Criteria. While the values passed to -atime, -ctime and -mtime are measured in days, there are also corresponding criteria that perform searches in minutes: -amin, -cmin and -mmin. You can evern match access times relative to the timestamps of other files using -anewer, -cnewer and -newer, which tests mtime. For example:
[user@user-pc ~]$ find -newer recent_file.txt
Would list all files with mtimes more recent than that of recent_file.txt. Note that there is no -older argument. To match files older than recent_file.txt you would simply negate the -newer criteria:
[user@user-pc ~]$ find -not -newer recent_file.txt
Remember that the metadata, including all three timestamps, for a file can be manually examined using the stat command.
atime
The find command with the -atime option is used to search for files based on their access time (the time when a file was last accessed). You can specify a time period in days to find files that were accessed within that time frame. Here’s an example:
find /path/to/search -atime -7In this example:-
find: The command itself for searching files and directories./path/to/search: Replace this with the directory path where you want to start the search.-atime: This is the option to specify that you want to search based on access time.-7: This indicates that you want to find files that were accessed within the last 7 days. You can replace this number with the desired number of days.
This command will list files in the specified directory (and its subdirectories) that have been accessed within the last 7 days.
mtime
The -mtime option allows you to search for files based on their modification time (in days). You can use this option to find files that were modified within a certain number of days ago. Here’s an example of how to use the find command with the -mtime option:
find /path/to/search -mtime -7In this example:
/path/to/searchis the directory where you want to start your search.-mtime -7specifies that you want to find files modified within the last 7 days. The-before the7indicates “less than,” so it will find files modified within the past 7 days.
You can adjust the number of days to fit your specific needs. If you want to find files modified more than 7 days ago, you can use -mtime +7 instead.
ctime
The -ctime option in find is used to search for files and directories based on their change time. Specifically, it allows you to find files and directories that were changed (i.e., had their metadata modified) a certain number of 24-hour periods ago.
Here’s an example of how to use the find command with the -ctime option:
find /path/to/search -ctime NIn this command:
/path/to/searchshould be replaced with the directory where you want to start your search.Nshould be replaced with the number of 24-hour periods ago you want to search for. For example:-ctime 0will find files and directories that were changed today.-ctime -1will find files and directories that were changed less than 1 day ago (i.e., within the last 24 hours).-ctime +1will find files and directories that were changed more than 1 day ago.
Here are a few practical examples:
- To find all files and directories in the current directory that were changed today:
find . -ctime 0- To find all files and directories in the
/home/user/documentsdirectory that were changed less than 7 days ago:
find /home/user/documents -ctime -7- To find all files and directories in the
/var/logdirectory that were changed more than 30 days ago:
find /var/log -ctime +30Remember that the -ctime option in find is based on the change time, which includes changes to the metadata of a file (e.g., permissions or ownership) and not just the content of the file.
amin
The -amin option in the find command is used to search for files based on their access time in minutes. You can use it to find files that were accessed within a specified number of minutes ago. Here’s an example of how to use the -amin option:
find /path/to/search -amin NIn this command:
/path/to/searchis the directory where you want to start your search.Nis the number of minutes ago that you want to use as a criterion for finding files. ReplaceNwith the desired number of minutes.
For example, if you want to find files that were accessed within the last 24 hours (1440 minutes), you can use the following command:
find /path/to/search -amin -1440This command will find files in the specified directory and its subdirectories that were accessed within the last 1440 minutes (24 hours). You can adjust the value of N to match your specific time criteria.
mmin
The find command with the -mmin option is used to search for files and directories based on their modification time in minutes. You can specify a specific number of minutes ago as a criterion for the search. Here’s an example:
Let’s say you want to find all files in the current directory and its subdirectories that were modified within the last 60 minutes:
find /path/to/search -type f -mmin -60In this example:
/path/to/searchshould be replaced with the actual directory path where you want to start the search.-type fspecifies that you are looking for files (not directories).-mmin -60means you want to find files that were modified less than 60 minutes ago.
You can adjust the number of minutes as needed to match your specific criteria.
-cmin
The find command with the -cmin option is used to search for files and directories based on their “change time” in minutes. This option allows you to specify a range of time, and find will search for files that have had their status change within that time frame. Here’s an example:
find /path/to/search -cmin -30In this example:
/path/to/searchis the directory where you want to start your search.-cmin -30specifies that you want to find files that have had their status changed within the last 30 minutes.
This command will search for files and directories within the specified directory that have been modified in the last 30 minutes. You can adjust the -30 to any other value to search for files modified within a different time frame. Use + instead of - to search for files modified more than a certain number of minutes ago.