6

What do find -mtime -4 and find -mtime +4 do? I cannot understand the examples given in the man page.

miken32
  • 42,008
  • 16
  • 111
  • 154
Unixbun
  • 63
  • 1
  • 3

3 Answers3

11

Well, I can.

-mtime n

File's data was last modified n*24 hours ago. See the comments for -atime to understand how rounding affects the interpretation of file modification times

find . -mtime 0   # find files modified between now and 1 day ago
                  # (i.e., within the past 24 hours)
find . -mtime -1  # find files modified less than 1 day ago
                  # (i.e., within the past 24 hours, as before)
find . -mtime 1   # find files modified between 24 and 48 hours ago
find . -mtime +1  # find files modified more than 48 hours ago
Melebius
  • 6,183
  • 4
  • 39
  • 52
wgitscht
  • 2,676
  • 2
  • 21
  • 25
9

As per man page:

-mtime n
    File’s  data was last modified n*24 hours ago.  See the comments
    for -atime to understand how rounding affects the interpretation
    of file modification times.

The argument to -mtime is interpreted as the number of whole days in the age of the file. -mtime +n means strictly greater than, -mtime -n means strictly less than.

So in your case,

-4 meaning less than 4 days.
+4 meaning more than 4 days i.e. 4*24 hours.

Melebius
  • 6,183
  • 4
  • 39
  • 52
SMA
  • 36,381
  • 8
  • 49
  • 73
0

None of my searches - be they for "negative", "mtime", "strictly" - found the normative text in the man page, but it's there, oy, a quarter of the way through:

   Numeric arguments can be specified as

   +n     for greater than n,

   -n     for less than n,

   n      for exactly n.

But who needs the man page when Google's top match is Stack Overflow, where @SMA and @wgitscht had already given the correct answer? Well, it's nice to know it's de jure and not a happy accident.

Martin Dorey
  • 2,944
  • 2
  • 24
  • 16