How can I find files that are not modified in the last five months?

At our university we have the policy that on certain disks' data is deleted if it is not modified for six months. Now I would like to list all files that have not been modified in the last five months.

How can I do this? I have access to all basic Linux tools, like Bash, find, etc.


Solution 1:

It is

find directory -mtime +150

for the files not modified in this period (-150 will list the modified files).

Solution 2:

If you need to be more precise regarding leap years and particular month lengths, you can do this:

find /dir/to/start/from -type f -mtime +$(((10#$(date +%s) - 10#$(date -d "now - 5 months" +"%s")) / (24*60*60)))

Here's how the number of days would vary if the above were run on the first day of each month in 2010:

1 153
2 153
3 151
4 151
5 150
6 150
7 149
8 152
9 153
10 153
11 153
12 153

As you can see "150" is only an approximation. However, for most purposes approximations (such as 24*60*60 as a matter of fact) are good enough.