У меня есть каталог с 8K файлами на данный момент. В течение следующего месяца или около того число увеличится до 100 тыс. Плюс. Мне нужно иметь возможность подсчитывать файлы в каталоге, соответствующем определенному шаблону. Матч шаблон добавляет огромное количество времени:Быстрый способ получить количество файлов, соответствующих шаблону
[[email protected] scripts]$ time ls | grep . -c
8373
real 0m0.115s
user 0m0.109s
sys 0m0.009s
[[email protected] scripts]$ time ls *.o* | grep . -c
6262
real 0m1.997s
user 0m0.121s
sys 0m0.270s
Поскольку количество файлов продолжает увеличивать время рассчитывать на шаблон станет слишком большим. Могу ли я обойти это?
В качестве побочного примечания файловая система Luster, и я могу иметь дело с непереносимым решением.
Отлично! Большое спасибо. – Sevenless
Если файл имеет новую строку в своем имени, он может считаться двумя или более файлами. Я бы сделал это: 'найти. -maxdepth 1 -name '* .o' -printf "\ n" | wc -l'. (В этом случае '-name '* .o'' предотвращает' .' от подсчета, но в других случаях вам также может понадобиться '-mindepth 1', чтобы исключить' .'.) – musiphil