bash - 创建 tar 文件并按当前日期命名

标签 bash

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

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

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

预期输出:2013-08-29.tar

最佳答案

像这样:

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

甚至在一行中:

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

如果您想要 .tar 而不是 .tar.gz,请删除 -z 标志。

如果您只需要 2 位数的年份,请使用 %y 而不是 %Y(17 而不是 2017).

$() 用于 command substitution .

关于bash - 创建 tar 文件并按当前日期命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47945682/

相关文章:

regex - Linux 用包含双引号的变量替换

bash - shell脚本中的 "##"是什么意思?

python - 在 Python 中为 : how can I get the exit status of the previous process run from Bash (i. e。 "$?")?

arrays - 在bash中同时迭代两个数组

bash - 如何在 bash 脚本中使用 bash 配置文件中定义的函数?

bash - MacOS Catalina 升级后 bash_profile 中的别名不起作用

bash - 在 Gitlab CI 管道中的每个环境使用不同的 Azure 订阅 ID

linux - Bash:写入 CSV 中的特定列

xcode - 在 Cocoa Applescript (ApplScriptObjC) (Xcode) 中运行 bash 文件

linux - 在 csv 列中嵌入逗号的匹配模式