是否可以格式化stat的时间输出?我正在使用
stat -c '%n %A %z' $filename
在bash脚本中,但它的时间格式不是我想要的。是否可以在命令中更改此格式,或者我必须稍后手动执行此操作?
示例输出如下:
/lib drwxr-xr-x 2010-11-15 04:02:38.000000000 -0800
答案 0 :(得分:7)
您可以尝试以下方式:
date -d "1970-01-01 + $(stat -c '%Z' $filename ) secs"
仅提供日期。您可以使用日期的格式选项格式化日期(请参阅man date),例如:
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')"
答案 1 :(得分:5)
您可以像这样简单地删除小数部分:
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