我必须search大约7,000个目录,并确定上个月修改的PDF数量,这些数据按照PDF数据库中的PDFtypes进行分组。 文件夹结构是…
/folder/to/FORMID/*.pdf /folder/to/FORMID/*.pdf /folder/to/FORMID/*.pdf /folder/to/FORMID/*.pdf
目前我正在运行…
find "/folder/to/FORMID/" "/folder/to/FORMID/" "/folder/to/FORMID/" -name '*.pdf' -mtime +31 -mtime -51 | wc -l
除了最多4,000个目录作为参数。 这不是返回我所知道的是准确的结果。
这是做这个最有效的方法还是有另一个我可以使用的Linux命令?
如果你有一个文件包含要search的目录的名字,你可以做这个shell / find组合:
for i in `cat LIST_OF_DIR_NAMES.TXT`; do find ${i} -mtime +31 -mtime -51 -name '*.pdf' ; done | wc -l
这将在LIST_OF_DIR_NAMES.TXT中的每个目录上运行查找,并为您提供find的总文件。
查找应该适当地工作。 由于命令正在运行,我假设它不是太多/太长的参数错误。 给,这可能是一个find错误。 有很多select可以合理解决这个问题。 这里有两个:
使用args -n $NUM来检查$ NUM目录,每次运行find
cat directory_list | xargs -n 30 -IXfindX -mtime +31 -mtime -51 -name'* .pdf'
我假设你有很多子目录你不打算读取,因此没有指定一个更高级别的目录。
如果你想在过去的30天内修改PDF文件,你会不会这样做:
find dir1 dir2 ... dirn -name '*.pdf' -mtime -31 -print