Как посчитать количество файлов в папке Linux
Посчитать количество файлов в папке Linux проще всего так:
ls | wc -lЭто число строк в выводе ls: файлы и каталоги текущего каталога, без скрытых. Ниже — варианты, когда нужны скрытые файлы, только файлы без папок или рекурсия по подкаталогам.
Коротко: какую команду взять
| Задача | Команда |
|---|---|
| Файлы и папки в текущем каталоге, без скрытых | ls | wc -l |
| То же, включая скрытые | ls -A | wc -l |
| Только файлы, без каталогов, только здесь | find . -maxdepth 1 -type f | wc -l |
| Все файлы, включая подкаталоги | find . -type f | wc -l |
| Файлы и каталоги деревом | tree -a |
wc -l считает строки. Поэтому слева нужна команда, которая печатает по одному имени на строку.
ls и wc: количество файлов в папке
ls | wc -lСчитает видимые имена в текущем каталоге. Скрытые (имя начинается с точки) не попадают. Каталоги считаются наравне с файлами.
Чтобы увидеть скрытые и не посчитать служебные . и .., нужен -A:
ls -A | wc -lЕщё точнее — печатать по одному имени на строку явно:
ls -1A | wc -lЭто единица в -1, не буква l. У ls -l в начале вывода есть строка total …, и wc -l завысит счёт на единицу.
find: только файлы, без каталогов
Каталог в Linux тоже файл. Если нужны обычные файлы, без папок:
find . -maxdepth 1 -type f | wc -l-maxdepth 1 не заходит в подкаталоги. Чтобы посчитать количество файлов во всех вложенных папках:
find . -type f | wc -lТолько каталоги:
find . -type d | wc -lВ это число входит и текущий каталог .. Если его не нужно — вычтите единицу или отфильтруйте.
tree
tree -a рисует дерево, включая скрытые, и в конце печатает сводку: сколько каталогов и сколько файлов. Пакет ставится отдельно: apt install tree.
Частые вопросы
Как узнать количество файлов в папке Linux одной командой?
ls | wc -l для текущего каталога. find . -type f | wc -l — если нужны все файлы вниз по дереву.
Как посчитать количество файлов в папке, включая скрытые?
ls -A | wc -l. Флаг -A показывает скрытые и не показывает . и ...
Почему ls | wc -l и find дают разные числа?
ls считает имена, в том числе каталоги. find -type f считает только обычные файлы. find без -maxdepth 1 ещё и спускается в подкаталоги.




