Попробуйте find
, чтобы рекурсивно найти все файлы конфигурации:
find /etc -name '*conf' | wc -l
(Предполагается, что ни один файл конфигурации не будет содержать разрыв строки в своем имени.)
Независимо от того, хотите ли вы исключить каталоги и как вы хотите следовать символическим c ссылкам, вам нужно немного изменить эту команду:
find /etc -not -type d -name '*conf' | wc -l
find -L /etc -name '*conf' | wc -l
find /etc \( -type f -o -type l \) -name '*conf' | wc -l
Если вы не хотите находить файлы, соответствующие шаблон имени рекурсивно, вы можете указать глобальный параметр -maxdepth 1
:
find /etc -maxdepth 1 -name '*conf' | wc -l
или использовать ls
с переключателем, чтобы не печатать содержимое каталогов (но это будет включать каталоги в счетчике, что может быть или не быть тем, что вы хотите):
ls -1bd /etc | grep 'conf$' | wc -l
-b
заменяет символы, не являющиеся графическими, c на C -style escape, так что вы даже должны безопасно, если ваши имена файлов содержат символы новой строки.