首页 > 解决方案 > 如何将目录名称和日期附加为备份文件后缀?

问题描述

我需要制作一个脚本来备份文件,并且我希望将时间戳和基本文件名作为名称的一部分,以便于区分。

#!/bin/bash
filename=$(basename $(pwd))
echo $filename

output_dir="/home/backup/backup_$filename_$(date +%Y-%m-%d_%Hh%Mm%Ssec)/"
echo $output_dir

获得以下输出:-

bash-4.2$ ./backup_1.sh
test
/home/backup/backup_2018-08-21_10h44m10sec/
bash-4.2$

在 output_dir 名称文件名中,“ test ”不包括仅作为后缀添加的时间戳。预期输出为“ /home/backup/backup_test_2018-08-21_10h44m10sec/

非常感谢任何建议。

标签: bashshell

解决方案


你的变量需要大括号

${filename}

用这个替换你的代码

output_dir="/home/backup/backup_${filename}_$(date +%Y-%m-%d_%Hh%Mm%Ssec)/"

使用当前代码,bash 正在尝试查找不存在的 ${filename_}。

更新代码:

#!/bin/bash
filename=$(basename $(pwd))
echo $filename

output_dir="/home/backup/backup_${filename}_$(date +%Y-%m-%d_%Hh%Mm%Ssec)/"
echo $output_dir

输出

test
/home/backup/backup_test_2018-08-21_11h02m55sec/

推荐阅读