如何从cygwin“date”获取最后12个月12个月,包括2月

时间:2011-09-29 17:35:51

标签: date cygwin

我想创建过去12个月的目录,每当我运行脚本时都会启动。我有这个代码,这是%90好:

for i in {1..12}; do
    mkdir "$(date -d "$i months ago" +%Y-%m)-01"

问题是,它不是创建一个2011-02-01目录,而是尝试创建2个2011-03-01目录。我的猜测是,因为今天是29日,它一次又回到一个月,并将2月29日解释为3月1日。有什么方法可以确保我得到一个二月的目录吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

echo "$(date -d "$(date +%Y-%m-15) -$i months" +%Y-%m)-01"

这意味着它会尝试从每月的15日而不是当天返回。