【问题标题】:UNIX script - find files - show datesUNIX 脚本 - 查找文件 - 显示日期
【发布时间】:2023-03-10 05:34:02
【问题描述】:

我正在运行以下命令:

find . -atime -30

但是在输出中,我希望它显示访问时间的时间戳。如果可能的话,还希望它显示访问该文件的用户。

你能帮忙吗?

谢谢。

【问题讨论】:

    标签: shell unix scripting find


    【解决方案1】:

    上次访问不会记录访问文件的用户。

    find . -atime -30 -exec stat {} +
    

    会给你所有你能得到的信息。

    如果您没有 GNU find 或 stat,请尝试 Petesh 的建议。

    【讨论】:

    • 我不知道您使用的是哪个版本的 UNIX。你至少有 GNU find 吗?
    • 我所知道的是我们正在使用 HP UX。
    • 所以你可能被 xargs 和 ls 卡住了
    • 是的,出于某种原因,它仍然返回完整目录。
    • 您是否像 Petesh 建议的那样使用了 -type f。可能您最终会在目录上运行 ls(这将列出其中的所有文件)。
    【解决方案2】:
    find . -atime -30 -print0 | xargs -0 ls -lud
    

    您无法确定谁访问了该文件,一般不会记录此信息。

    请记住,atime 并不总是更新(取决于文件系统挂载选项)。

    如果您想将查找限制为仅文件,那么您可以这样做:

    find . -atime -30 -a -type f -print0 | xargs -0 ls -lud
    

    【讨论】:

    • 这确实显示了一个结果,但它与我输入原始命令时得到的结果有很大不同。
    【解决方案3】:

    使用findprintf 选项:

    find . -atime -30 -printf '%u %Ac %p\n'
    

    查看man find 以了解不同的printf 格式选项。

    【讨论】:

    • 我使用的 unix 版本不喜欢 printf,尝试使用 -print0 但后来它抱怨 '%u %Ac %p\n'。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 2010-09-05
    • 2023-03-14
    • 2015-01-21
    • 1970-01-01
    相关资源
    最近更新 更多