Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #15423 > unrolled thread

Re: file access time and file modification time

Started byMischa Baars <mjbaars1977.bug-bash@cyberfiber.eu>
First post2019-09-24 08:48 +0200
Last post2019-09-24 08:48 +0200
Articles 1 — 1 participant

Back to article view | Back to gnu.bash.bug

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: file access time and file modification time Mischa Baars <mjbaars1977.bug-bash@cyberfiber.eu> - 2019-09-24 08:48 +0200

#15423 — Re: file access time and file modification time

FromMischa Baars <mjbaars1977.bug-bash@cyberfiber.eu>
Date2019-09-24 08:48 +0200
SubjectRe: file access time and file modification time
Message-ID<mailman.965.1569307833.2190.bug-bash@gnu.org>
Hi Kerin and Chet,

Testing mailing list. My earlier replies didn't come through.

Regards,
Mischa.

On Tue, 2019-07-09 at 11:16 +0100, kfm@plushkava.net wrote:
> Hi Mischa,
> 
> On Tue, 09 Jul 2019 09:05:45 +0200
> Mischa Baars <mjbaars1977.bug-bash@cyberfiber.eu> wrote:
> 
> > Hi Kerin,
> > 
> > That indeed solves the problem in 'accesstime.sh', although I would
> > recommend some sort of reference from the bash manpage to the mount
> > manpage.
> > 
> > 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. 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
> 
> That was with ext4 as the filesystem backing the TMPDIR. I also
> tested FreeBSD/UFS, with the same results, even if sleeping one
> second before updating the mtime. Perhaps Chet would be so kind as to
> clarify what's going on here. In the meantime, your technique of
> comparing the timestamps lexicographically seems like a good
> workaround, although you should use [[ instead. For example:
> 
> # check() { local at=$(stat -c %x "$1") mt=$(stat -c %y "$1"); [[ $mt
> > $at ]]; }
> # f=$(mktemp); check "$f"; echo $?; touch -m "$f"; check "$f"; echo
> $?
> 1
> 0
> 

[toc] | [standalone]


Back to top | Article view | gnu.bash.bug


csiph-web