如何限制 find 命令搜索以仅返回特定日期之前修改的文件?

如何限制 find 命令搜索以仅返回特定日期之前修改的文件?

我想将以下搜索限制为仅修改日期<=“2009-05-29 11:59:00”的文件

find /path -name "*.sb" ! -name "*[^0-9]*.sb"  -type f -print

我正在使用 CentOS

答案1

该命令find /path -mtime +7将为您提供超过 7 天的文件,并将find ! -newer somefile为您提供比 somefile 更旧的文件。所以...

touch -d "2009-05-29 11:59:00" timestampfile

find /path -name "*.sb" ! -name "*[^0-9]*.sb" ! -newer timestampfile -type f -print

答案2

!-newermt '5/29/2009 23:59:00' 应该可以在 BSD 上运行;GNU 上也会有类似的选项。

答案3

find /path \
  -type f \
  ! -newermt "20090529 1159:00" \
  -regex "./[^0-9]*.sb$" \
  -print

您可以将命令放在regex末尾以加快命令速度(将最快的操作放在开始处,将最慢的操作放在末尾)。

答案4

你想要-mdate

查找/路径-名称”.sb" !-名称 "[^0-9]*.sb"-type f-print-mdate-2009-05-30

以下是几个示例:

http://www.softpanorama.org/Tools/Find/selecting_files_by_age.shtml
http://www.schuerig.de/michael/linux/snippets.html

相关内容