我如何在Unix中find当前date减去七天?

我试图find今天七天前的date。

CURRENT_DT=`date +"%F %T"` diff=$CURRENT_DT-7 echo $diff 

我正在尝试像上面这样find比当前dateless的7天。 任何人都可以帮我吗?

GNU的date将为你的数学:

 date --date "7 days ago" 

其他版本将要求您将当前日期转换为自UNIX时代以来的秒数,手动减去7天的秒数,并将其转换回所需的形式。 有关如何转换为Unix时间戳和从Unix时间戳转换的详细信息,请参阅您的date版本的文档。 这是一个使用GNU date的例子:

 x=$(date +%s) x=$((x - 7 * 24 * 60 * 60)) date --date @$x 

下面是一个简单的Perl脚本(与其他例子不同)在Unix下工作

 perl -e 'use POSIX qw(ctime); printf "%s", ctime(time - (7 * 24 * 60 * 60));' 

(当然,使用Solaris 10和一个令牌Linux系统进行测试 – 只要非常可能,Perl 不一定只是一个配置的一部分)。

Kshprintf可以做时间计算:

 $ printf '%(%Y-%m-%d)T\n' 2015-04-07 $ printf '%(%Y-%m-%d)T\n' '7 days ago' 2015-03-31 $ 

我有一段时间没有使用unix,但是我在其中一个脚本中找到了这个

 echo `date +%s`-604800 | bc