bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: file access time and file modification time


From: Chet Ramey
Subject: Re: file access time and file modification time
Date: Tue, 9 Jul 2019 10:48:32 -0400
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.7.2

On 7/9/19 6:16 AM, address@hidden wrote:

>> Did you have a look at the 'conditional.sh' script too? Looks like the '-N' 
>> switch compares only the integer part of the timestamp seconds.
> 
> The stat structure supports timestamp fields of nanosecond granularity since 
> POSIX.1-2008, so it should work. I tried a simple test case here, and the 
> behaviour of -N seems generally broken:
> 
> # f=$(mktemp); [[ -N $f ]]; echo $?; touch -m "$f"; [[ -N $f ]]; echo $?
> 0
> 0
> 
> I expected the value of $? to be non-zero at first, followed by 0 after 
> updating the mtime. 

The code just returns (atime <= mtime), and has since 1997. It uses the
st_atime and st_mtime fields. I should update it to use timespecs if
they're available, and (mtime > atime) might work closer to your
expectations.

After the call to mktemp, the atime and mtime are the same, so the test
returns true.

Using the test command that ships with GNU coreutils (v8.31) exhibits the
same problem:
> 
> # f=$(mktemp); command test -N "$f"; echo $?; touch -m "$f"; command test -N 
> "$f"; echo $?
> 0
> 0

It might, but that's not what you tested. This runs the builtin test.

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    address@hidden    http://tiswww.cwru.edu/~chet/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]