在mac上我的bash脚本(雪豹)我有一个路径和文件名,我需要获取该文件的修改日期/时间。我发现我能做到:
stat -f "%m" $MYFILE
然而,这回归我所假设的纪元日期/时间。我需要格式化的日期/时间:YYYYMMDDThhmmss
。我发现了各种各样的选项(比如date
)显然依赖于GNU,这在我的mac上我没有。
在mac(BSD?)bash上以用户指定的格式修改文件的日期/时间的标准方法是什么?或者至少是一个日期/时间格式化功能,我可以将上面stat
调用的结果传递给。
答案 0 :(得分:32)
它实际上非常简单,但与GNU date
不同,它远不是那么明显:
date -r $TIMESTAMP +%Y%m%dT%H%M%S
要让stat
进行格式化:
stat -f "%Sm" -t "%Y%m%dT%H%M%S" FILE
答案 1 :(得分:0)
# how-to list all the files and dir in a dir sorted by their
# modified time in the different shells
# usually mac os / Unix / FreeBSD stat
stat -f "%Sm %N" -t "%Y-%m-%d %H:%M:%S" ~/opt/comp/proj/*|sort
# STDOUT output:
# 2018-03-27 15:41:13 ~/opt/comp/proj/foo
# 2018-03-28 14:04:11 ~/opt/comp/proj/bar
# GNU Utils ( usually on Linux ) stat
# STDOUT output:
stat -c "%y %n" ~/opt/comp/proj/*|sort
# 2018-03-29 09:15:18.297435000 +0300 ~/opt/comp/proj/bar
# 2018-03-29 09:15:18.297435000 +0300 ~/opt/comp/proj/foo