在Bash Shell中将当前日期追加到文件名
时间:2020-01-09 10:45:52 来源:igfitidea点击:
在Linux和UNIX之类的操作系统下,如何在文件名(例如backup_mm_dd_yyyyy.sql)后追加当前日期(mm_dd_yyyyy格式)?
在Linux或者Unix bash shell下,如何将当前日期从变量追加到文件名?
如何在文件名后追加日期?
我们使用date命令来显示或者设置系统日期和时间。
此外,我们可以在给定的格式中显示当前日期和时间。
本教程说明如何使用各种命令行选项将当前日期追加到文件名。
将当前日期追加到文件名
要以mm_dd_yyyy格式获取当前日期,请使用以下日期格式语法:
date +"%FORMAT_STRING" date +"%m_%d_%Y" date +"%Y-%m-%d"
您可以将其存储为变量名称:
var=$(date +"%FORMAT_STRING")
now=$(date +"%m_%d_%Y")
printf "%s\n" $now
today=$(date +"%Y-%m-%d")
printf "Today we are going to backup file to NFS server at AWS '%s'\n" "/efs/my-blog-${today}.sql.tar.gz"
输出示例:
Today we are going to backup file to NFS server at AWS '/efs/my-blog-2020-02-29.sql.tar.gz'
命令替换的Alternat语法如下:
var=`date +"%FORMAT_STRING"`
now=`date +"%m_%d_%Y"`
now=`date +"%Y-%m-%d"`
echo "${now}"
输出示例:
2020-02-29
现在我们可以将存储在$now中的当前日期追加到文件名中,如下所示:
echo "Coping data to /tmp/filename-${now} ..."
日期命令FORMAT_STRING
FORMAT_STRING(FORMAT)控制输出。
解释的序列如下(摘自GNU/date手册页)
%a语言环境缩写了工作日名称(例如Sun)%A语言环境完整的工作日名称(例如周日)%b语言环境缩写月份名称(例如Jan)%B语言环境的完整月份名称(例如一月)%C世纪;类似于%Y,但省略了最后两位数字(例如20)%d月的某天(例如01)%D日期;与%m /%d /%y相同%F完整日期;与%Y-%m-%d相同%gISO周编号的年份的后两位数字(请参见%G)ISO周数的%G年(见%V);通常仅对%V有用%H小时(00..23)%I小时(01..12)%j日(001..366)%m月(01..12)%M分钟(00..59)%n换行符%N纳秒(000000000..999999999)%p等于AM或者PM的语言环境;如果未知,则为空白%P与%p类似,但小写%q季度(1..4)%r语言环境为12小时制(例如11:11:04 PM)%R24小时小时和分钟;与%H:%M相同%s自1970-01-01 00:00:00 UTC以来的秒%S秒(00..60)%T时间;与%H:%M:%S相同%u星期几(1..7); 1是星期一%U年的星期数,以星期日为星期的第一天(00..53)%VISO周数,以星期一为一周的第一天(01..53)%w星期几(0..6); 0是星期日%W年的星期数,星期一为星期的第一天(00..53)%x语言环境日期表示形式(例如12/31/99)%X语言环境时间表示形式(例如23:13:48)%y年的后两位数字(00..99)%Y年%z+ hhmm数字时区(例如-0400)%:z+ hh:mm数字时区(例如-04:00)%:: z+ hh:mm:ss数字时区(例如-04:00:00)%:::z带有:以达到必要的精度的数字时区(例如-04,+ 05:30)%Z字母时区缩写(例如EDT)
Bash Shell在Linux或者Unix中将日期追加日期到文件名
最后,您可以创建文件名,如下所示:
#/bin/bash now=$(date +"%m_%d_%Y") echo "Filename : /nas/backup_$now.sql"
输出示例:
Filename : /nas/backup_04_27_2010.sql
如何在文件名中添加日期?
这是一个快速演示:
将当前日期追加到文件名Shell脚本
您可以如下创建一个shell脚本:
#!/bin/bash # # Backup mysql/mariadb database ## Get current date ## _now=$(date +"%m_%d_%Y") ## Appending a current date from a $_now to a filename stored in $_file ## _file="/nas/backup_$_now.sql" ## Do it ## echo "Starting backup to $_file..." mysqldump -u admin -p'myPasswordHere' myDbNameHere > "$_file" ## Add more stuff below ##

