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

How can I do this? I have access to all basic linux tools like bash find etc.

link|improve this question

feedback

2 Answers

up vote 3 down vote accepted

it's find directory -mtime +150 for the files not modified in this period. The -150 will list the modified files.

link|improve this answer
That will list files that have been modified more than 150 days ago. – Juha Syrjälä Jul 20 '10 at 12:46
Yes... and they are the the same as the files not modified in the 150 last days (or 5 months) of course: this command lists all the files excepting the files modified in the last 5 months... so the others (listed) are the not modified in this time. – laurent Jul 20 '10 at 20:19
feedback

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.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.