在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 ##

