我需要获得文件上次修改后的时间(以秒为单位)。ls -l没有显示。
ls -l
0ve6wy6x1#
没有简单的命令可以获取文件修改后的时间(以秒为单位),但可以通过两个部分计算该时间:
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)))
wgx48brx2#
在BASH中,将此值用于自上次修改以来的秒数:
expr `date +%s` - `stat -c %Y /home/user/my_file`
2admgd593#
我知道标签是Linux,但是stat -c语法在OSX上不适用。
stat -c
echo $(( $(date +%s) - $(stat -f%c myfile.txt) ))
并作为函数调用,文件名为:
lastmod(){ echo "Last modified" $(( $(date +%s) - $(stat -f%c "$1") )) "seconds ago" }
3条答案
按热度按时间0ve6wy6x1#
没有简单的命令可以获取文件修改后的时间(以秒为单位),但可以通过两个部分计算该时间:
date +%s
:自Epoch以来的当前时间(以秒为单位)date -r path/to/file +%s
:自Epoch以来指定文件的最后修改时间(秒)使用这些值,可以应用简单的Bash算法:
您也可以直接计算并打印经过的秒数,而不使用临时变量:
wgx48brx2#
在BASH中,将此值用于自上次修改以来的秒数:
2admgd593#
我知道标签是Linux,但是
stat -c
语法在OSX上不适用。并作为函数调用,文件名为: