按当前日期创建tar文件和命名

Ano*_*ity 38 bash

我正在尝试在bash中创建一个备份脚本,以tar文件夹的内容并将生成的文件移动到某个地方,但我真的不知道该怎么做.

#!/bin/bash
name="$date +"%y-%m-%d""
tar -zcvf $name code
Run Code Online (Sandbox Code Playgroud)

但结果是该文件刚刚命名+%y-%m-%d.如何更改脚本以按预期的日期命名文件?

预期产量: 2013-08-29.tar

Ale*_*-A. 74

像这样:

name=$(date '+%Y-%m-%d')
tar -zcvf "$name.tar.gz" code
Run Code Online (Sandbox Code Playgroud)

甚至在一行中:

tar -zcvf "$(date '+%Y-%m-%d').tar.gz" code
Run Code Online (Sandbox Code Playgroud)

-z如果你想要删除标志.tar而不是.tar.gz.

如果您只想要一年的2位数(而不是),请使用%y而不是.%Y172017

$()用于命令替换.


Gia*_* P. 6

tar -zcvf "$(date '+%F').tar.gz" code-path
Run Code Online (Sandbox Code Playgroud)

将产生完整的日期;和一样%Y-%m-%d。(请参阅man date后继/)搜索和%F

例如,它将生成:

2015-07-21.tar.gz
Run Code Online (Sandbox Code Playgroud)

如果code-path是目录,它将压缩和存档其中的所有文件。