Date: Wed, 04 Jan 2012 15:01:32 +0100 From: "Julian H. Stacey" <jhs@berklix.com> To: Devin Teske <devin.teske@fisglobal.com> Cc: 'Dan Nelson' <dnelson@allantgroup.com>, 'Polytropon' <freebsd@edvax.de>, 'FreeBSD Questions' <freebsd-questions@freebsd.org> Subject: Re: Exact timestamp for sorting and renaming files according to creation order Message-ID: <201201041401.q04E1WQL057342@fire.js.berklix.net> In-Reply-To: Your message "Tue, 03 Jan 2012 13:09:13 PST." <050701ccca5b$f2c34560$d849d020$@fisglobal.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, Devin Teske wrote: > > -----Original Message----- > > From: owner-freebsd-questions@freebsd.org [mailto:owner-freebsd- > > questions@freebsd.org] On Behalf Of Polytropon > > Sent: Tuesday, January 03, 2012 1:00 PM > > To: Dan Nelson > > Cc: FreeBSD Questions > > Subject: Re: Exact timestamp for sorting and renaming files according to > creation > > order > > > > On Tue, 3 Jan 2012 14:49:02 -0600, Dan Nelson wrote: > > > If you ask for the date to be printed in "float" (F) format, it gives > > > more precision. The default is unsigned int (U) format. > > > > > > % stat -f "%N %FB" /COPYRIGHT > > > /COPYRIGHT 1306190895.046721049 > > > > Strangely, I only get a 000000000 "suffix" for any time stamp, no matter if I > create > > the file or apply the command as shown above to an existing file: > > > > % stat -f "%N %FB" /COPYRIGHT > > /COPYRIGHT 1313951230.000000000 > > > > Am I missing some file system feature? > > > > Otherwise, this _exactly_ looks like what I'm searching for. It doesn't need > to be > > a "human-readable" date representation. > > > > by the way, I'm running FreeBSD 8.2-STABLE/x86 of late August 2011 here, file > > system used is UFS2. > > On ZFS, all is well... > > % df -hT /raid1/jails/package8-1/COPYRIGHT > Filesystem Type Size Used Avail Capacity Mounted on > raid1/jails/package8-1 zfs 835G 672M 835G 0% > /raid1/jails/package8-1 > > % stat -f "%N %FB" /raid1/jails/package8-1/COPYRIGHT > /raid1/jails/package8-1/COPYRIGHT 1324356049.328275367 > > But alas, on UFS2: > > % df -hT /COPYRIGHT > Filesystem Type Size Used Avail Capacity Mounted on > /dev/mfid0s1a ufs 989M 64M 846M 7% / > > % stat -f "%N %FB" /COPYRIGHT > /COPYRIGHT 1279505857.000000000 > > -- > Devin I was wondering how df (& stat) could show more than seconds (Remembering back to 1990 & my http://berklix.com/~jhs/src/bsd/jhs/bin/public/statv/ when Unix used unsigned long seconds since 1 jan 1970 ( & MSDOS was seconds divided by 2 since 1 jan 1980 ) ) FreeBSD 8.2-RELEASE /usr/src/usr.bin/stat/stat.c line 320 etc still uses the normal fstat stat lstat. But man 2 stat has extended : #ifndef _POSIX_SOURCE #define st_atime st_atimespec.tv_sec #define st_mtime st_mtimespec.tv_sec #define st_ctime st_ctimespec.tv_sec #endif cd /usr/include/sys ; vi -c/tv_sec /types.h stat.h #if __BSD_VISIBLE #define st_atime st_atimespec.tv_sec struct timespec #include <sys/time.h> time.h: #include <sys/timespec.h> timespec.h: struct timespec {time_t tv_sec;/* seconds */ long tv_nsec;/* nanoseconds */}; I guess extended timespec may get compiled in to VFS but not UFS, but no time to look further, Good luck Polytropn. PS Here with UFS (per Dan's tip, thanks) I see: sysctl vfs.timestamp_precision=2 ; stat -f "%N %FB" /etc/motd /etc/motd 1306839862.000000000 Cheers, Julian -- Julian Stacey, BSD Unix Linux C Sys Eng Consultants Munich http://berklix.com Reply below not above, cumulative like a play script, & indent with "> ". Format: Plain text. Not HTML, multipart/alternative, base64, quoted-printable.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201201041401.q04E1WQL057342>