列出自纪元以来带有时间戳的文件

列出自纪元以来带有时间戳的文件

我基本上想结合的输出

find /

输出为:

find / | xargs -L1 stat -c%Z

第一个命令列出 / 目录中的文件,第二个命令列出每个文件的时间戳。我想将这两者结合起来,这样我就可以获得文件和时间戳,例如:

/path/to/file 1501834915

答案1

如果你有 GNU find,你完全可以使用以下命令来完成find

find / -printf '%p %C@\n'

格式说明符是:

     %p     File's name.
     %Ck    File's last status change time in the format specified by
            k, which is the same as for %A.
     %Ak    File's last access time in the  format  specified  by  k,
            which  is  either `@' or a directive for the C `strftime'
            function.  The possible values for k  are  listed  below;
            some  of  them might not be available on all systems, due
             to differences in `strftime' between systems.

             @      seconds  since  Jan.  1,  1970,  00:00  GMT,  with
                    fractional part.

如果您不需要小数部分,请使用s而不是@作为时间格式说明符。 (有一些系统没有s,但 Linux 和 *BSD/OSX 确实有s。)

find / -printf '%p %Cs\n'

答案2

你为什么不替你要求findstat

find / -exec stat -c'%n %Z' {} +

find 将运行每个条目(文件或目录)的统计信息。

答案3

我通过使用解决了它

find / | while read filename
    do
    echo -n "$filename " && stat -c%Z $filename
done

但我不会使用这个解决方案,因为Archemar的答案看起来更好。

相关内容