9

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.

Peter Mortensen
  • 12,090
  • 23
  • 70
  • 90
Peter Smit
  • 9,346
  • 13
  • 45
  • 45

2 Answers2

18

It is

find directory -mtime +150

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

Peter Mortensen
  • 12,090
  • 23
  • 70
  • 90
laurent
  • 4,402
  • 22
  • 23
1

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.

Dennis Williamson
  • 106,229
  • 19
  • 167
  • 187