如何在 bash SunOS 中获取上周的日期



我的问题是:我有一个备份bash脚本,需要访问一个名称中带有日期的文件夹,例如:backup_01072022 .

当我需要访问昨天的备份文件夹时,我使用了date=`TZ=GMT+24 date +%d%m%Y`

现在我要访问上周的备份文件夹:

date=`TZ=GMT+168 date +%d%m%Y`,它不工作,它显示今天的日期。

我读到TZ不适用于+144以上的值。

SunOS 6.8中还有其他方法可以操作日期吗?

?指出:

6.8 SunOSdate版本util: 8.5

bash版本:4.1.11(2)-release

这取决于您系统上的date版本。

WithGNU date(v 8.26):

$ TZ=GMT date '+%d%m%Y'
06072022                        # today
$ TZ=GMT date '+%d%m%Y' -d 'last week'
29062022
$ TZ=GMT date '+%d%m%Y' -d '7 days ago'
29062022

注意:我将把它留给OP来决定是否应该调整(或使用)显式TZ设置

我似乎记得SunOS用Perl,所以如果你没有一个支持--date="..."date,您应该能够做的事:

date=$(perl -MPOSIX -e '
print POSIX::strftime "%d%m%Y", localtime time-(60*60*24*7)
')

感谢有帮助的评论和回答,我能够使它工作使用:

/usr/gnu/bin/date -d "last week" '+%d%m%Y'

事实证明,我没有使用GNU date,直到我明确地指定它,这既不是--date也不是-d为我工作。我仍然不能弄清楚什么日期,直到我使用默认的GNU date

相关内容

  • 没有找到相关文章

最新更新