Re: How do I do this in bash ??
On Sun, Jan 19, 2003 at 10:48:43AM +0000, Dave Selby wrote:
> I am writting a weekly automated backup script, very simple .. tars a
> directory called 'myfiles' to a second hard drive.
> Works AOK except I want the name of the file written by tar to be the time
> and date. So I get a list of tared dated backups
> I know 'date' gives me exactly what I want but I cant figure out how to get
> tar to write a file with the value of date as its file name ...
> #! /bin/sh
> # Backup entire 'myfiles/' directory, name it with the date.
> cd /usr/local/
> tar -czf /mnt/archive/autoarchive/date myfiles
> I put this in /etc/cron.weekly and I get a file called date !!???
> I have tried '' and "" all to no avail
What you want is backticks (`date`). Since date's default output isn't
very good as a filename you probably want to specify the output format.
I would use something like this:
tar czf /mnt/archive/autoarchive/`date '+%Y%m%d'`.tar.gz myfiles
which would give you a file named 20030119.tar.gz. The reason I use
year-month-day format is that the alphabetical sorting that ls does by
default will match the chronological order of the files.