Creating tar file and naming by current date
I'm trying to create a backup script in bash, to tar the contents of a folder and move the resulting file somewhere, but I don't really know how to do it.
#!/bin/bash
name="$date +"%y-%m-%d""
tar -zcvf $name code
But the result is that the file is just named +%y-%m-%d
. How can I change the script to name the file by the date as intended?
Intended output: 2013-08-29.tar
Like this:
name=$(date '+%Y-%m-%d')
tar -zcvf "$name.tar.gz" code
or even in one line:
tar -zcvf "$(date '+%Y-%m-%d').tar.gz" code
Drop -z
flag if you want .tar
instead of .tar.gz
.
Use %y
instead of %Y
if you want just 2 digits of a year (17
instead of 2017
).
$()
is used for command substitution.
tar -zcvf "$(date '+%F').tar.gz" code-path
will produce full date; same as %Y-%m-%d
. (see man date
follow by /
) to search and %F
.
For example, it will generate:
2015-07-21.tar.gz
If code-path
is a directory it will compress and archive all the files in it.