Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash UNIX统计时间格式_Bash_Time_Formatting - Fatal编程技术网

Bash UNIX统计时间格式

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的时间输出?我正在使用

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中是否可以格式化。