summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2010-10-21 18:41:24 +0200
committerJim Meyering <meyering@redhat.com>2010-11-03 13:10:50 +0100
commitdb42ae787de7165ee3a1bbf8d4988d0698d7c1df (patch)
treeedda302f85ea9c7cd29384d50b260cbfbafb6e56 /doc
parent272f8bf0ac23d7c9ac96f3cb53e114cd3566875b (diff)
downloadcoreutils-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')
-rw-r--r--doc/coreutils.texi27
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