这是图片...
日期格式:Y%m%d%H%M%S% 这是我的文件名格式:file_sub1_20110501000000.txt
目录结构:
dir/
sub1/
file_sub1_20110501003000.txt
file_sub1_20110501010000.txt
file_sub1_20110501013000.txt
file_sub1_20110501020000.txt
--more--
sub2/
file_sub2_20110501003000.txt
file_sub2_20110501010000.txt
file_sub2_20110501013000.txt
file_sub2_20110501020000.txt
--more--
--more--/
--more--.txt
我的问题是如何有效地过滤掉范围内的文件名
($file_date <= $cur_date && $file_date >= $prev_date)
我原本想循环遍历每个文件,同时比较日期是否在范围内,但是当我处理数千个文件时,我发现这种方法太慢了。
有没有更快的方法呢?
谢谢!
答案1
您应该能够使用以下命令列出文件名中包含今天或昨天日期的所有文件:
find . -iname "*`date +%Y%m%d`*" -or -iname "*`date -v -d1 +%Y%m%d`*"
运行此命令dir/
将递归遍历所有子目录。