diff options
author | Jim Meyering <meyering@redhat.com> | 2010-10-21 18:41:24 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2010-11-03 13:10:50 +0100 |
commit | db42ae787de7165ee3a1bbf8d4988d0698d7c1df (patch) | |
tree | edda302f85ea9c7cd29384d50b260cbfbafb6e56 /doc/coreutils.texi | |
parent | 272f8bf0ac23d7c9ac96f3cb53e114cd3566875b (diff) | |
download | coreutils-db42ae787de7165ee3a1bbf8d4988d0698d7c1df.tar.xz |
stat: revert %X-%Y-%Z change; use e.g., %:X to print fractional seconds
This reverts part of the recent commit 9069af45,
"stat: print timestamps to full resolution", which made %X, %Y, %Z
print floating point numbers. We prefer to retain portability of
%X, %Y and %Z uses, while still providing access to full-resolution
time stamps via modified format strings. Also make the new
%W consistent.
* src/stat.c: Include "xstrtol.h".
(print_it): Accept a new %...:[XYZ] format directive,
e.g., %:X, to print the nanoseconds portion of the corresponding time.
For example, %3.3:Y prints the zero-padded, truncated, milliseconds
part of the time of last modification.
(print_it): Update print_func signature to match.
(neg_to_zero): New helper function.
(epoch_time): Remove function; replace with...
(epoch_sec): New function; use timetostr.
(out_ns): New function. Use "09" only when no other modifier
is specified.
(print_statfs): Change type of "m" to unsigned int,
now that it must accommodate values larger than 255.
(print_stat): Likewise.
Map :X to a code of 'X' + 256. Likewise for Y, Z and W.
(usage): Update.
* tests/touch/60-seconds: Use %Y.%:Y in place of %Y.
* tests/misc/stat-nanoseconds: New file.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Changes in behavior): Mention this.
With improvements by Pádraig Brady.
Thanks to Andreas Schwab for raising the issue.
Diffstat (limited to 'doc/coreutils.texi')
-rw-r--r-- | doc/coreutils.texi | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/doc/coreutils.texi b/doc/coreutils.texi index 0b5a3d341..be5999ffe 100644 --- a/doc/coreutils.texi +++ b/doc/coreutils.texi @@ -10706,15 +10706,40 @@ The valid @var{format} directives for files with @option{--format} and @item %u - User ID of owner @item %U - User name of owner @item %w - Time of file birth, or @samp{-} if unknown -@item %W - Time of file birth as seconds since Epoch, or @samp{-} +@item %W - Time of file birth as seconds since Epoch, or @samp{0} +@item %:W - Time of file birth: nanoseconds remainder, or @samp{0} @item %x - Time of last access @item %X - Time of last access as seconds since Epoch +@item %:X - Time of last access: nanoseconds remainder @item %y - Time of last modification @item %Y - Time of last modification as seconds since Epoch +@item %:Y - Time of last modification: nanoseconds remainder @item %z - Time of last change @item %Z - Time of last change as seconds since Epoch +@item %:Z - Time of last change: nanoseconds remainder @end itemize +Note that each of @samp{%:W}, @samp{%:X}, @samp{%:Y} and @samp{%:Z} +prints its zero-padded number of nanoseconds on a field of width 9. +However, if you specify anything between the @samp{%} and @samp{:}, +e.g., @samp{%10:X}, your modifier replaces the default of @samp{09}. + +Here are some examples: + +@example +zero pad: + $ stat -c '[%015:Y]' /usr + [000000031367045] +space align: + $ stat -c '[%15:Y]' /usr + [ 31367045] + $ stat -c '[%-15:Y]' /usr + [31367045 ] +truncate: + $ stat -c '[%.3:Y]' /usr + [031] +@end example + The mount point printed by @samp{%m} is similar to that output by @command{df}, except that: @itemize @bullet |