使用bash测试文件日期

Jef*_*PHP 14 bash datetime file creation

我试图用一个if语句中的bash来测试一个文件的创建时间(以秒为单位).我需要创建日期,而不是修改.

你有什么想法如何做到这一点,而无需使用如下命令findgrep

Joe*_*oel 20

我怕我上无法解答的创建时间的问题,但对于最后修改时间,你可以使用以下来获得划时代日期,以,因为文件名最后一次修改:

date --utc --reference=filename +%s
Run Code Online (Sandbox Code Playgroud)

所以你可以这样:

modsecs=$(date --utc --reference=filename +%s)
nowsecs=$(date +%s)
delta=$(($nowsecs-$modsecs))
echo "File $filename was modified $delta secs ago"

if [ $delta -lt 120 ]; then
  # do something
fi
Run Code Online (Sandbox Code Playgroud)

等等..

更新 更有效的方式(再次,仅修改时间):如何检查bash文件是否创建超过x时间之前?


Jef*_*PHP 7

这是我目前找到的最佳答案,但仅限于修改时间:

expr `date +%s` - `stat -c %Y /home/user/my_file`
Run Code Online (Sandbox Code Playgroud)