我试图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 不一定只是一个配置的一部分)。
Ksh
的printf
可以做时间计算:
$ 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