我写了一个脚本来删除旧文件。部分脚本如下:
lastmonth=`date +%Y%m -d '1 month ago'`
inputdir0=/var/this/directory/${lastmonth}*
if [ `date +%d` -gt 9 ];
then
rm -Rf $inputdir0
fi
Run Code Online (Sandbox Code Playgroud)
有一些目录以日期+%Y%m%d 格式命名。现在是 3 月 29/30/31,脚本删除了本月的所有文件。今天我了解到这是因为没有二月 29/30/31。
我怎样才能解决这个问题?
减去当月的天数,得到上个月的最后一天。例如:
date +%Y-%m-%d -d "`date +%d` day ago"
Run Code Online (Sandbox Code Playgroud)
结果是
2017-02-28
Run Code Online (Sandbox Code Playgroud)
由于您不关心日期而只想要月份,因此您将始终得到正确的月份:
lastmonth=$(date +%Y%m -d "$(date +%d) day ago")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7117 次 |
| 最近记录: |