gpt4 book ai didi

linux - 怎么得到最后一个月? date +%Y%m -d '1 month ago' 在 3 月 30 日不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:33:59 25 4
gpt4 key购买 nike

我写了一个脚本来删除旧文件。部分脚本如下:

lastmonth=`date +%Y%m -d '1 month ago'`
inputdir0=/var/this/directory/${lastmonth}*

if [ `date +%d` -gt 9 ];
then
rm -Rf $inputdir0
fi

有些目录以日期+%Y%m%d格式命名。现在是 2031 年 3 月 29 日,脚本删除了这个月的所有文件。今天我了解到发生这种情况是因为没有二月 29/30/31。

我该如何解决这个问题?

最佳答案

减去当月的天数,您将得到上个月的最后一天。例如:

date +%Y-%m-%d -d "`date +%d` day ago"

结果

2017-02-28

由于您不关心日期而只想要月份,因此您将始终获得正确的月份:

lastmonth=$(date +%Y%m -d "$(date +%d) day ago")

关于linux - 怎么得到最后一个月? date +%Y%m -d '1 month ago' 在 3 月 30 日不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43113414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com