如何获取自上次使用 bash 修改文件以来的时间(以秒为单位)



我需要获取自上次修改文件以来的时间(以秒为单位)。 ls -l没有显示出来。

没有简单的命令可以获取自文件修改以来的时间(以秒为单位),但您可以从两个部分计算它:

  • date +%s:自纪元以来的当前时间(以秒为单位)
  • date -r path/to/file +%s:指定文件自纪元以来的上次修改时间(以秒为单位)

使用这些值,您可以应用简单的 Bash 算法:

lastModificationSeconds=$(date -r path/to/file +%s)
currentSeconds=$(date +%s)
((elapsedSeconds = currentSeconds - lastModificationSeconds))

您还可以直接计算和打印经过的秒数,而无需临时变量:

echo $(($(date +%s) - $(date -r path/to/file +%s)))

在 BASH 中,自上次修改以来使用它几秒钟:

 expr `date +%s` - `stat -c %Y /home/user/my_file`
我知道

标签是Linux,但stat -c语法在OSX上对我不起作用。这确实有效...

echo $(( $(date +%s) - $(stat -f%c myfile.txt) ))

作为使用文件名调用的函数:

lastmod(){
     echo "Last modified" $(( $(date +%s) - $(stat -f%c "$1") )) "seconds ago"
}

最新更新