Простой вопрос, я уверен. Я видел ответ это показывает, как это сделать, включая подкаталоги, но я хочу знать, сколько файлов (не папок) находится только в текущем каталоге. Спасибо.
ls -F |grep -v / | wc -l
-
ls -F
> перечислите все файлы и добавьте индикатор (один из */=@|) в список -
grep -v /
сохраните все строки, которые делают нет содержать aslash -
wc -l
подсчет строк
Попробуйте этот лайнер:
find -maxdepth 1 -type f | wc -l
Попробуйте это
ls -al | grep ^[-] | wc -l
-
ls -al
--список всех файлов с длинным форматом списка -
grep ^[-]
-- поиск строки, начинающейся с "-", которая является символом для обозначения обычного файла при перечислении файла с помощью ls -al -
wc -l
-- подсчет строк
Я просто хочу добавить ответ тома потому что мне нравится играть с Удар. Вот оно что:
echo "Directory $(pwd) has $(ls -F |grep -v / | wc -l) files"
Ниже приведен примерный результат моего /data
каталог:
Directory /data has 580569 file(s).
И ниже приведены мои объяснения:
-
echo сообщение в двойных кавычках
выведет желаемое сообщение. -
$(любая-желательная-действительная-команда)
внутри сообщения в двойных кавычкахecho
выведет результат выполнения соответствующей команды. -
pwd
будет выведен текущий каталог. -
ls -F
> предназначен для перечисления всех файлов и добавления индикатора (одного из */=@|) к записям. Я скопировал это с ответ тома. -
grep -v /
это команда для поиска в обычном тексте,-v /
параметр сохранит все строки, которые не содержат косой черты(ов). -
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