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

问题描述 投票:37回答:3

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

#!/bin/bash
name="$date +"%y-%m-%d""
tar -zcvf $name code

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

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

bash
3个回答
71
投票

像这样:

name=$(date '+%Y-%m-%d')
tar -zcvf "$name.tar.gz" code

甚至在一行中:

tar -zcvf "$(date '+%Y-%m-%d').tar.gz" code

如果你想要qazxsw poi而不是qazxsw poi,请放下qazxsw poi旗帜。

如果你只想要一年的2位数(-z而不是.tar),请使用.tar.gz而不是%y

%Y用于17


5
投票
2017

将产生完整的日期;和$()一样。 (请参阅command substitution跟随tar -zcvf "$(date '+%F').tar.gz" code-path )搜索和%Y-%m-%d

例如,它将生成:

man date

如果/是一个目录,它将压缩并存档其中的所有文件。


0
投票

在BSD系统上,您可能需要像这样使用它:

%F
© www.soinside.com 2019 - 2024. All rights reserved.