Bash UNIX统计时间格式
是否可以格式化stat的时间输出?我正在使用Bash UNIX统计时间格式,bash,time,formatting,Bash,Time,Formatting,是否可以格式化stat的时间输出?我正在使用 stat -c '%n %A %z' $filename 在bash脚本中,但它的时间格式不是我想要的。是否可以在命令中更改此格式,或者以后必须手动更改 输出示例如下所示: /lib drwxr-xr-x 2010-11-15 04:02:38.000000000 -0800 您可以尝试以下方法: date -d "1970-01-01 + $(stat -c '%Z' $filename ) secs" 只给你日期。您可以使用日期的格式选项设
stat -c '%n %A %z' $filename
在bash脚本中,但它的时间格式不是我想要的。是否可以在命令中更改此格式,或者以后必须手动更改
输出示例如下所示:
/lib drwxr-xr-x 2010-11-15 04:02:38.000000000 -0800
您可以尝试以下方法:
date -d "1970-01-01 + $(stat -c '%Z' $filename ) secs"
只给你日期。您可以使用日期的格式选项设置日期格式(请参见),例如:
date -d "1970-01-01 + $(stat -c '%Z' $filename ) secs" '+%F %X'
这不会为您提供名称和权限,但您可以这样做:
echo "$(stat -c '%n %A' $filename) $(date -d "1970-01-01 + $(stat -c '%Z' $filename ) secs" '+%F %X')"
您可以像这样简单地去掉小数部分:
stat -c '%n %A %z' "$filename" | sed 's/\(:[0-9]\{2\}\)\.[0-9]* /\1 /'
编辑:
下面是截断小数部分的另一种方法:
stat -c '%n %A %.19z' "$filename"
这取决于日期长度为19个字符:
2010-11-15 04:02:38
您的问题不明确,请使用预期输出更新您的问题输出不相关;我只是想知道在stat中是否可以格式化。