【问题标题】:Appending the values of the date to a directory path in a bash script将日期值附加到 bash 脚本中的目录路径
【发布时间】:2016-05-25 10:12:15
【问题描述】:

我正在编写一个脚本来存储前一天收集的日志文件。我想将这些日志文件逐年存储在一个目录路径中,例如:2016/Jan/01

我已经编写了以下命令来确定昨天的日期:

DATE=$(date +%Y-%m-%d -d yesterday)

将昨天的日期显示为yyyy-mm-dd

创建目录并附加这些值的最佳方法是:

mkdir +%Y + '/' + -%m + '/' + -%d

并将月份解释为月份的前三个字母Jan,而不是数字01

【问题讨论】:

  • mkdir -p "$(date +%Y/%m/%d -d yesterday)" -- 这就是你想要的吗?

标签: bash directory mkdir


【解决方案1】:

如果父目录不存在,只需在mkdir 中使用-p 创建父目录:

yesterday=$(date "+%Y/%m/%d" -d "yesterday")
mkdir -p "$yesterday"

请注意,我使用/ 作为日期格式的分隔符,因此您已经有了字符串2016/05/24

执行此操作后,我得到:

$ tree 2016/
2016/
└── 05
    └── 24

2 directories, 0 files

来自man mkdir

   -p, --parents
          no error if existing, make parent directories as needed

【讨论】:

  • 非常感谢。有没有办法可以将月份数字转换为第一个字母?即“May”而不是“05”
  • 啊,我明白了 - %b 而不是 %m
猜你喜欢
  • 1970-01-01
  • 2013-12-02
  • 1970-01-01
  • 2010-10-10
  • 2019-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多