How do I get the date into a filename?


  

This isn't hard, but it is a bit cryptic at first sight. Let's begin with the date command itself: date can take a formatting string, to modify the way in which the date info is printed. The formatting string has to be enclosed in quotes, to stop the shell trying to interpret it before the date command itself gets it. Try this:

$ date '+%m%d%y'

you should get back something like 021599 (or whatever the date is today). If you want to punctuate this, just put the characters you would like to use in the formatting string (don't use SLASHES '/'):

$ date '+%m.%d.%y'

There are lots of token you can use in the formatting string. Of course, if you're still wondering what those %m, %d and %y are, RTFM "date" command first before reading any further.

Now, getting this into a file name. Let's say that we want to create files called report.022599 (or whatever the date is today) in your source code or sh script:

FILENAME=report.`date '+%m%d%y'`

Notice that we are using two sets of quotes here: the inner set are to protect the formatting string from premature interpretation; the outer set -- keep in mind that it is ` (grave accent) not ' (single quote) -- are to tell the shell to execute the enclosed command, and substitute the result into the expression (command substitution).