【问题标题】:Get latest file creation time in Unix [duplicate]在Unix中获取最新的文件创建时间[重复]
【发布时间】:2015-04-03 01:33:47
【问题描述】:

我有两个文件 FileA 和 FileB。有人可以告诉我如何在 Unix 的文件夹中获取最新创建的文件的时间吗?

【问题讨论】:

    标签: linux shell unix


    【解决方案1】:

    对于只有两个文件和n个文件的一般情况,都可以使用find

    find -type f -printf '%T@ \n' | sort -n | tail -1
    

    如果文件需要匹配一个模式,你可以使用类似的东西:

    find -type f -name 'example*.txt' -printf '%T@ \n' | sort -n | tail -1
    

    这会打印工作目录中文件的所有修改时间,对它们进行排序,然后选择最后一个(最大的)。

    【讨论】:

    • 当我执行第一个命令时,它给出了 belwo 输出。我不确定这是什么意思:(请告诉我。find -type f -printf '%T@ \n' | sort -n | tail -1 1427994119.6287518250
    • 那是Unix time的最大修改时间。如果您需要人类可读的格式,您可以使用例如%T+ 而不是%T@
    • find -printf '%T+ \n' |排序-n | tail -1 2015-04-02+18:25:48.8187518250 --> 我们可以得到最多三位数的毫秒数吗?类似于 18:25:48.819
    • @Unixuser:您无法使用find 指定该精度,但您可以通过sed 进行管道传输:只需添加| sed -re 's/(\.[0-9]{3})[0-9]+/\1/'
    • 成功了 :) 谢谢。我不想再打扰你了。最后一个问题,你能告诉我是否有任何方法可以得到格式为 2015-04-03.13:09:44:427 现在我们在 13 之前得到 + 和 .在 427 之前,我需要替换这两个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 2013-02-09
    相关资源
    最近更新 更多