Как подсчитать количество файлов в каталоге, но не рекурсивно

Простой вопрос, я уверен. Я видел ответ это показывает, как это сделать, включая подкаталоги, но я хочу знать, сколько файлов (не папок) находится только в текущем каталоге. Спасибо.

ls -F |grep -v / | wc -l
  1. ls -F> перечислите все файлы и добавьте индикатор (один из */=@|) в список
  2. grep -v / сохраните все строки, которые делают нет содержать aslash
  3. wc -l подсчет строк

Попробуйте этот лайнер:

find -maxdepth 1 -type f | wc -l

Попробуйте это

ls -al | grep ^[-] | wc -l
  1. ls -al --список всех файлов с длинным форматом списка
  2. grep ^[-] -- поиск строки, начинающейся с "-", которая является символом для обозначения обычного файла при перечислении файла с помощью ls -al
  3. wc -l -- подсчет строк

Я просто хочу добавить ответ тома потому что мне нравится играть с Удар. Вот оно что:

echo "Directory $(pwd) has $(ls -F |grep -v / | wc -l) files"

Ниже приведен примерный результат моего /data каталог:

Directory /data has 580569 file(s).

И ниже приведены мои объяснения:

  1. echo сообщение в двойных кавычках выведет желаемое сообщение.
  2. $(любая-желательная-действительная-команда) внутри сообщения в двойных кавычках echo выведет результат выполнения соответствующей команды.
  3. pwd будет выведен текущий каталог.
  4. ls -F> предназначен для перечисления всех файлов и добавления индикатора (одного из */=@|) к записям. Я скопировал это с ответ тома.
  5. grep -v / это команда для поиска в обычном тексте, -v / параметр сохранит все строки, которые не содержат косой черты(ов).
  6. wc -l выведет подсчет строк.

Я знаю, что этому вопросу уже 3 года, я просто не могу сдержать своего желания добавить еще один ответ.

Если у вас есть tree установленный в вашей системе, вы можете использовать эту команду:

tree -L 1 /path/to/your/directory | tail -n 1

Он показывает вам количество файлов и каталогов в этом каталоге.

-L n показывает глубину поиска.

Вы можете установить tree с sudo apt-get install tree.

Чтобы подсчитать общее количество файлов с определенным расширением, вы можете ввести:

ls|grep jpg |wc -l