Date: Sat, 13 Oct 2001 12:26:53 -0700 From: "Crist J. Clark" <cristjc@earthlink.net> To: Mike Meyer <mwm@mired.org> Cc: Randy Bush <randy@psg.com>, questions@FreeBSD.ORG Subject: Re: date of a file Message-ID: <20011013122653.B36620@blossom.cjclark.org> In-Reply-To: <15304.21677.127685.628179@guru.mired.org>; from mwm@mired.org on Sat, Oct 13, 2001 at 09:50:21AM -0500 References: <73720831@toto.iv> <15303.43126.44123.116068@guru.mired.org> <E15sJ9L-000Hfy-00@rip.psg.com> <20011013030023.M6274@blossom.cjclark.org> <15304.21677.127685.628179@guru.mired.org>
index | next in thread | previous in thread | raw e-mail
On Sat, Oct 13, 2001 at 09:50:21AM -0500, Mike Meyer wrote:
> Crist J. Clark <cristjc@earthlink.net> types:
> > On Sat, Oct 13, 2001 at 12:23:59AM -0700, Randy Bush wrote:
> > > > date +%y%m%d-%H%M%S -jf "%b %d %H:%M:%S" `ls -lT filename | awk ' { print $6, $7, $8, $9 } '`
> > >
> > > i have tried many variations on this, and all fail as follows:
> > >
> > > rip.psg.com:/usr/home/randy> date -j +%y%m%d-%H%M%S -f '%b %d %T %Y' `ls -lT 2borg | awk '{print $6, $7, $8, $9}'`
> > > date: illegal time format
> > > usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
> > > [-f fmt date | [[[[[cc]yy]mm]dd]HH]MM[.ss]] [+format]
> > >
> > > yes, this all seems in accord with what 'man strftime' shows me.
> >
> > It has to do with how date(1) reads the command line. Basically, the
> > '+ format' and '-f format date' options are not compatible. This
> > appears to be a bug, but it would be really tricky to
> > fix. (Hmm... maybe not...) Send in a PR if you would like so it gets
> > into the system. Have a look at date.c. It is pretty clear what is
> > happening. Feel free to submit a fix with a PR.
>
> Considering that the man page says:
>
> -j Do not try to set the date. This allows you to use the -f flag
> in addition to the + option to convert one date format to
> another.
>
> It's *definitely* a bug. Randy, if you're not going to file a PR, let
> me know and I will.
I spoke too soon. It seems to be a problem with the way the shell
parses the command line. For example, a script like,
#!/bin/sh
DATE=`ls -lT $1 | awk '{print $6, $7, $8, $9}'`
date -j -f '%b %d %T %Y' "$DATE" +%y%m%d-%H%M%S
Works fine. date(1) is fine.
--
Crist J. Clark | cjclark@alum.mit.edu
| cjclark@jhu.edu
http://people.freebsd.org/~cjc/ | cjc@freebsd.org
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011013122653.B36620>
