列出从时间 X 到时间 Y 的文件

列出从时间 X 到时间 Y 的文件

如何列出从“x”到“y”时间之间创建的所有文件?我想列出“2014 年 12 月 29 日 18:00”到“2014 年 12 月 30 日 18:00”之间创建的文件。使用 ls 或 stat?

答案1

大多数系统不跟踪文件的创建日期

如果你的有并且有 GNU/BSD 找到,例如如果它是操作系统X,您可以使用其-newerBt谓词来比较文件的创建(“irth”)时间与特定时间。

find -newerBt "29-dec-2014 18:00" ! -newerBt "30-dec-2014 18:00"

这会递归地遍历子目录。如果您只想当前目录中的文件,请执行此操作

find -mindepth 1 -maxdepth 1 -newerBt "29-dec-2014 18:00" ! -newerBt "30-dec-2014 18:00"

如果您的系统不跟踪创建时间,您可以使用修改时间。替换-newerBt-newermt.

也不ls提供stat按时间过滤文件的方法。他们所能做的就是列出文件的时间戳,并且过滤时间范围的输出并不容易。find是适合这项工作的工具。

POSIX 查找只能将一个文件的时间戳与另一个文件的时间戳进行比较,因此在某个时间间隔内过滤文件的可移植方法是创建边界文件。您只能过滤修改时间,POSIX 没有定义创建时间。

touch -t 201412291800 /tmp/start
touch -t 201412301800 /tmp/stop
find . -newer /tmp/start ! -newer /tmp/stop

或者如果你不想递归

find . ! -name . -prune -newer /tmp/start ! -newer /tmp/stop

相关内容