网络宝典
第二套高阶模板 · 更大气的阅读体验

Bash命令中常用的日期操作技巧

发布时间:2025-12-12 20:49:19 阅读:140 次

在日常使用Linux系统时,处理日期是再常见不过的事。比如写个备份脚本,想把当天的日期加到文件名里;或者查看日志时,需要按日期范围筛选内容。这时候,bash里的日期操作命令就派上用场了。

查看当前日期和时间

最基础的命令是 date,直接输入就能看到当前的时间:

date

输出可能是这样:

Wed Apr  5 10:23:45 CST 2023

格式化输出日期

默认格式可能不适合做文件名或记录。可以用 + 加格式符来自定义输出。比如只想显示年月日:

date +"%Y-%m-%d"

结果就是:

2023-04-05

常用格式符号有:

  • %Y:四位年份
  • %m:两位月份
  • %d:两位日期
  • %H:小时(24小时制)
  • %M:分钟
  • %S:秒

用日期命名备份文件

假设你要打包一个配置目录,希望压缩包名字带日期,可以这样写:

tar -czf backup_$(date +%Y%m%d).tar.gz /path/to/configs

执行后会生成类似 backup_20230405.tar.gz 的文件,一目了然。

获取昨天或明天的日期

有时候需要往前或往后推一天。GNU版的 date 支持 -d 参数:

date -d "yesterday" +%Y-%m-%d

输出昨天的日期。同理:

date -d "tomorrow" +%Y-%m-%d

可以拿到明天的日期。也支持更自然的表达:

date -d "last Monday" +%Y-%m-%d

或者:

date -d "+3 days" +%Y-%m-%d

表示三天后的日期。

时间戳转换

有些场景下会遇到时间戳(从1970年开始的秒数)。可以用 date 把它转成可读格式:

date -d @1680680625

反过来,把日期转成时间戳也很简单:

date -d "2023-04-05 10:00:00" +%s

这个功能在写定时任务或比对时间区间时特别有用。

小技巧:补零和调整格式

某些系统上,月份或日期如果是单数,默认不补零。可以用 %-m%_m 控制显示方式,但更稳妥的是统一用两位格式 %m%d,避免脚本出错。

跨平台注意点

macOS上的 date 命令和Linux略有不同,不支持 GNU 的 -d 参数。如果在Mac上操作,建议安装 coreutils 包,使用 gdate 命令替代。