sco*_*777 10 bash formatting time
是否可以格式化stat的时间输出?我在用
stat -c '%n %A %z' $filename
Run Code Online (Sandbox Code Playgroud)
在bash脚本中,但它的时间格式不是我想要的.是否可以在命令中更改此格式,或者我必须稍后手动执行此操作?
示例输出如下:
/lib drwxr-xr-x 2010-11-15 04:02:38.000000000 -0800
Run Code Online (Sandbox Code Playgroud)
你可以尝试类似的东西:
date -d "1970-01-01 + $(stat -c '%Z' $filename ) secs"
Run Code Online (Sandbox Code Playgroud)
这只给你一个日期.您可以使用日期的格式选项格式化日期(请参阅人日期),例如:
date -d "1970-01-01 + $(stat -c '%Z' $filename ) secs" '+%F %X'
Run Code Online (Sandbox Code Playgroud)
这不会给你名字和权限,但你可以这样做:
echo "$(stat -c '%n %A' $filename) $(date -d "1970-01-01 + $(stat -c '%Z' $filename ) secs" '+%F %X')"
Run Code Online (Sandbox Code Playgroud)
您可以像这样简单地删除小数部分:
stat -c '%n %A %z' "$filename" | sed 's/\(:[0-9]\{2\}\)\.[0-9]* /\1 /'
Run Code Online (Sandbox Code Playgroud)
编辑:
这是截断小数部分的另一种方法:
stat -c '%n %A %.19z' "$filename"
Run Code Online (Sandbox Code Playgroud)
这取决于19个字符长的日期: 2010-11-15 04:02:38