Re: Documentation: unclear -newerXY

Bernhard Voelker <[email protected]> Mon, 9 Mar 2026 08:53:35 +0100
Newsgroups gmane.comp.gnu.findutils.bugs
Message-ID <[email protected]>
Hi Mike,

On 3/6/26 21:46, Mike Maxwell wrote:
> I'm sending this as an email because I'm new to this, and
> https://www.gnu.org/software/findutils/ says "there will be occasions
> where you're not sure whether the problem you have is actually a bug, or
> you just want to talk about ideas for improving findutils. Using the
> mailing list is a good way to do that."  (Also because I can't find a
> place/button on https://savannah.gnu.org/bugs/ to actually submit anything.)
> 
> I am not sure what the most recent documentation page for 'find' is, in
> particular for the documentation on the -newerXY argument.  I've found
> half a dozen versions, most of which I find hard to understand or even
> misleading.  First I'll explain what I find confusing, then what I'm
> suggesting as better wording.
> 
> 
> Here's the relevant part of the documentation (some lines removed), as
> found in the man page for v 4.9.0 (on Linux Mint, but I assume the same
> elsewhere):
> ---------
>    -newerXY reference
>         Succeeds if timestamp X of the file being considered is newer
>         than timestamp Y of the file reference. ...
>         a   The access time of the file reference
>         B   The birth time of the file reference
>         c   The inode status change time of reference
>         m   The modification time of the file reference
>         t   reference is interpreted directly as a time
> --------
> When I read this, I (mis-)understand "timestamp Y of the file reference"
> to mean that 'reference' is a filename, and that's the only way to use
> this arg.  Given that misunderstanding I don't understand what
> "reference is interpreted directly as a time" means, i.e. I'm left
> confused by the man page.  Furthermore, the letters all (except t) talk
> about the times "of the file reference", whereas actually they pertain
> to the times of BOTH the file being considered and the reference file.
> 
> 
> Here's a different version of the man page on
> https://www.gnu.org/savannah-checkouts/gnu/findutils/manual/html_node/find_html/Comparing-Timestamps.html,
> also hard to understand:
> --------
>     Test: -newerXY reference
>        Succeeds if timestamp ‘X’ of the file being considered is newer
>        than timestamp ‘Y’ of the file reference.
>        ...
>        ‘t’
>            The reference argument is interpreted as a literal time,
>            rather than the name of a file.
> --------
> This version again uses the confusing "timestamp ‘Y’ of the file
> reference", but the 't' part (particularly the "rather than") helps to
> clarify that.  There is also an example, but the example doesn't
> illustrate the use of 't'.
> 
> 
> Finally, there's the documentation as show on
> https://unix.stackexchange.com/questions/169798/what-does-newermt-mean-in-find-command:
> ---------
> -newerXY reference
>             Compares the timestamp of the current file with reference.
>             The reference argument is normally the name of a file
>             (and one of its timestamps is used for the comparison)
>             but it may also be a string describing an absolute time.
>             ...
>             t   reference is interpreted directly as a time
> ----------
> IMO, this one comes the closest to being understandable, because the
> 'but' is right there in the first paragraph, not (just) down in the
> description of the possible replacements for X and Y.

Thanks for description of why this paragraph might be misinterpreted.

> Putting this all together, here's how I'd suggest this part of the man
> page could read:

Still, I think going back towards the older description might be confusing
as well:

> ---------
> -newerXY reference
>             Compares the timestamp X of the current file with the
>             timestamp Y of the reference. The reference argument is
>             normally the name of a file (and one of its timestamps
______________^^^^^^^^

what is normally?

>             is used for the comparison), but it may also be a string
_______________________________________________^^^^^^^^^^^^^^
I think this is also quite vague.

>             describing an absolute time (see description of 't' below).
>             The letters X and Y must be replaced with any of the
>             following letters:
>             a   The access time of the file
>             B   The birth time of the file
>             c   The inode status change time
>             m   The modification time
>             t   'reference' is interpreted as a time (rather than as
> 
>                 a file name); used for letter Y only

Actually it is a reference file for "Abcm", and a literal timestamp for 't'.
We should try to get this 2 different cases into the documentation, yet IMO
based on the current version which is not too bad but obviously not precise
enough.

> ----------

> An example would be a nice addition, like the two near the top of
> https://collectingwisdom.com/bash-find-files-newer-than/.

Agree.

Have a nice day,
Berny