linux的shell的date命令的加号“+“的作用

用于生成备份文件的例子

fp=/etc/samba/smb.conf ;    cp $fp $fp.$(date +%0y%0m%0d%0H%0M%0S).bak

带纳秒ns

fp=/etc/samba/smb.conf ;    cp $fp $fp.$(date +%0y%0m%0d%0H%0M%0Sns%0N).bak
fp=/etc/samba/smb.conf ;    cp $fp $fp.$(date +%0y%0m%0d%0H%0M%0S--%0N).bkup

linux的shell的date命令的加号"+"的作用

1是输出 , 2是填充方式,以0填充补位

  1. 第一个 + 表示格式化输出字符串, 后接表达式

  2. 加号后面的加号,在格式化表达式中的加号+, 表示以0填充补位, 比如1月会填充为01月, 也可以是0 , 也可以没有,因为默认效果如同0
    例如
    date "+%y%m%d%H%M%S"
    date +"%y%m%d%H%M%S"
    date +%+y%m%d%H%M%S
    date +%0y%m%d%H%M%S
    date +%+y%+m%+d%H%M%S
    date +%0y%0m%0d%H%M%S
    date +%+y%+m%+d%+H%M%S
    date +%0y%0m%0d%0H%M%S
    date +%+y%+m%+d%+H%+M%S
    date +%0y%0m%0d%0H%0M%S
    date +%+y%+m%+d%+H%+M%+S
    date +%0y%0m%0d%0H%0M%0S
    上面的👆这些是等效果的
    左边第一个加号"+"表示
    测试执行

    z@n100-1:~$ date "+%y%m%d%H%M%S"
    date +"%y%m%d%H%M%S"
    date +%+y%m%d%H%M%S
    date +%0y%m%d%H%M%S
    date +%+y%+m%+d%H%M%S
    date +%0y%0m%0d%H%M%S
    date +%+y%+m%+d%+H%M%S
    date +%0y%0m%0d%0H%M%S
    date +%+y%+m%+d%+H%+M%S
    date +%0y%0m%0d%0H%0M%S
    date +%+y%+m%+d%+H%+M%+S
    date +%0y%0m%0d%0H%0M%0S
    240721060155
    240721060155
    240721060155
    240721060155
    240721060155
    240721060155
    240721060155
    240721060155
    240721060155
    240721060155
    240721060155
    240721060155
    
  3. +在日期运算中标示正号,可以省略
    例如: 一秒后的写法

    date --date "1second"
    date --date "+1second"
    date --date "1 second"
    date --date "+1 second"
    

格式化中的占位符

  • %% 字面上的百分号 %
  • %a 当前区域设置的星期几的缩写(例如:日)
  • %A 当前区域设置的星期几的全称(例如:星期日)
  • %b 当前区域设置的月份缩写(例如:1月)
  • %B 当前区域设置的月份全称(例如:一月)
  • %c 当前区域设置的日期和时间(例如:2005年03月03日 星期四 23时05分25秒)
  • %C 世纪(指年份的最高两位);类似 %Y,但省略最后两位数(例如:20)
  • %d 日(例如:01)
  • %D 日期;等于 %m/%d/%y
  • %e 日,以空格填充;等于 %_d
  • %F 完整的日期;等于 %+4Y-%m-%d
  • %g ISO 周数年的最后两位(参见 %G)
  • %G ISO 周数年(参见 %V);一般只和 %V 一起使用
  • %h 等于 %b
  • %H 小时 (00…23)
  • %I 小时 (01…12)
  • %j 一年中的第几日 (001…366)
  • %k 小时,以空格填充 ( 0…23);等于 %_H
  • %l 小时,以空格填充 ( 1…12);等于 %_I
  • %m 月 (01…12)
  • %M 分钟 (00…59)
  • %n 换行
  • %N 纳秒 (000000000…999999999)
  • %p 当前区域设置中 AM 或 PM 的等价说法(“上午” 或 “下午”);未知则为空
  • %P 类似 %p,但使用小写
  • %q 季度 (1…4)
  • %r 当前区域设置中 12 小时制钟表时间(例如:下午 11时11分04秒)
  • %R 24 小时制的小时和分钟;等于 %H:%M
  • %s 自 Epoch (1970-01-01 00:00 UTC) 以来的秒数
  • %S 秒 (00…60)
  • %t 制表符
  • %T 时间;等于 %H:%M:%S
  • %u 星期几 (1…7);1 代表星期一
  • %U 一年中的第几周,以周日为每周第一天 (00…53)
  • %V ISO 周数,以周一为每周第一天 (01…53)
  • %w 星期几 (0…6);0 代表星期日
  • %W 一年中的第几周,以周一为每周第一天 (00…53)
  • %x 当前区域设置的日期表示法(例如:1999年12月31日)
  • %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)

上面这些百分号%开头的占位符, 百分号%后可以插入一些字符标志选项, 默认不插入等效插入0, 如 %M等效%0M, %S等效%0S
以下可选的标志可以跟在 “%” 后:

  • - (连字符)不填充该字段
  • _ (下划线)以空格填充
  • 0 (数字 0)以 0 填充
  • + 以 0 填充,并且在超过四位数的未来年份之前添加 “+” 符号
  • ^ 如果可能,使用大写字母
  • # 如果可能,使用相反的大小写

一些+加号格式化输出例子

标准格式

date "+%Y-%m-%d %H:%M:%S"
z@n100-1:~$ date "+%Y-%m-%d %H:%M:%S"
2024-07-21 05:54:17
date "+%Y-%m-%dT%H:%M:%S"
z@n100-1:~$ date "+%Y-%m-%dT%H:%M:%S"
2024-07-21T05:56:33

中文

date +"%Y年 %m月 %d日  星期%a    %H时%M分"
[z@3050 ~]$ date +"%Y年 %m月 %d日  星期%a    %H时%M分"
2024年 07月 21日  星期日    06时09分

0补位:[无(默认)|0|+], 不补位用连字符(横杆,减号)-

 # 0补位
date +"%y%m%d%H%M%S"
date +"%+y%+m%+d%+H%+M%+S"
date +"%0y%0m%0d%0H%0M%0S"
# 不补位
date +"%-y%-m%-d%-H%-M%-S"
结果:
240721062435
240721062435
240721062435
2472162435
# 0补位
date +"%Y年 %m月 %d日  星期%a    %H时%M分"
date +"%0Y年 %0m月 %0d日  星期%0a    %H时%0M分"
# 不补位
date +"%-Y年 %-m月 %-d日  星期%-a    %-H时%-M分"
结果:
2024年 07月 21日  星期日    06时25分
2024年 07月 21日  星期日    06时25分
2024721日  星期日    6时25分

相关推荐

  1. linuxshelldate命令加号“+“作用

    2024-07-21 13:28:05       20 阅读
  2. Linuxshelldate命令

    2024-07-21 13:28:05       14 阅读
  3. linuxdate 命令用法

    2024-07-21 13:28:05       48 阅读
  4. Linux Shellecho命令详解

    2024-07-21 13:28:05       36 阅读
  5. Linux命令添加-r作用

    2024-07-21 13:28:05       62 阅读
  6. Linuxshell`cp`命令,常用`cp -a`

    2024-07-21 13:28:05       17 阅读
  7. Linuxshell脚本

    2024-07-21 13:28:05       28 阅读
  8. Linuxshell外壳

    2024-07-21 13:28:05       28 阅读
  9. Linuxshell编程

    2024-07-21 13:28:05       18 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 13:28:05       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 13:28:05       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 13:28:05       45 阅读
  4. Python语言-面向对象

    2024-07-21 13:28:05       55 阅读

热门阅读

  1. 【Python大写字符串中每一个单词的首字母】

    2024-07-21 13:28:05       16 阅读
  2. 主页目录导航

    2024-07-21 13:28:05       19 阅读
  3. Mechanize:自动化Web交互的利器

    2024-07-21 13:28:05       19 阅读
  4. 增量预训练和微调的区别

    2024-07-21 13:28:05       18 阅读
  5. Allure 和 JUnit 4结合学习

    2024-07-21 13:28:05       18 阅读
  6. vue3 学习笔记17 -- echarts的使用

    2024-07-21 13:28:05       22 阅读
  7. GPT-5一年半后发布

    2024-07-21 13:28:05       17 阅读