如何附加目录名称和日期作为备份文件后缀?

时间:2018-08-21 05:24:26

标签: bash shell

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

#!/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 /

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您需要在变量周围使用大括号

${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/