【问题标题】:UNIX stat time formatUNIX 统计时间格式
【发布时间】:2010-11-15 05:05:34
【问题描述】:

是否可以格式化stat的时间输出?我正在使用

stat -c '%n %A %z' $filename

在 bash 脚本中,但它的时间格式不是我想要的。是否可以在命令中更改此格式,还是以后必须手动更改?

示例输出如下:

/lib drwxr-xr-x 2010-11-15 04:02:38.000000000 -0800

【问题讨论】:

  • 您的问题不明确,请用您的预期输出更新您的问题
  • 输出无关;我只是想知道在 stat 中是否可以进行格式化。

标签: bash time formatting


【解决方案1】:

您可以像这样简单地去除小数部分:

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

【讨论】:

    【解决方案2】:

    你可以试试这样的:

    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')"
    

    【讨论】:

    • 这显示了 UTC 时间。显示当地时间:/bin/date -d "$(stat -c '%z' $filename)" "+%F %X"
    猜你喜欢
    • 2016-07-17
    • 2012-01-03
    • 2021-04-19
    • 2013-05-17
    • 1970-01-01
    • 2013-12-29
    • 2011-05-29
    • 1970-01-01
    • 2012-02-22
    相关资源
    最近更新 更多