Хотя не очень часто, бывают случаи, когда вам нужно выяснить, сколько файлов находится в данном каталоге. Например, если у вас не хватает inode в вашей системе Linux, вам нужно найти каталог, содержащий тысячи или миллионы файлов.
В этой статье мы покажем вам несколько разных способов узнать количество файлов в каталоге в Linux.
Самый простой способ подсчитать файлы в каталоге – перечислить по одному файлу на строку ls и передать результат wc для подсчета строк:
ls -1U DIR_NAME | wc -l
Команда выше даст вам сумму всех файлов, включая каталоги и символические ссылки. Опция -1 означает, что лист один файл в каждой строке и -U говорит ls не сортировать вывод, который делает выполнение команды быстрее.
ls -1U Команда не считает скрытые файлы (точечные файлы).
Если вы хотите считать только файлы и не включать каталоги, используйте следующее:
ls -1Up DIR_NAME | grep -v / | wc -l
Параметр -p заставляет ls добавлять слэш ( /индикатор) для каталогов. Выходные данные передаются команде grep -v, исключающей каталоги.
Чтобы иметь больше контроля над тем, какие файлы перечислены, используйте команду find вместо ls:
find DIR_NAME -maxdepth 1 -type f | wc -l
Опция -type f говорит, что find нужно перечислить только файлы (включая точечные файлы) и -maxdepth 1 ограничить поиск каталогом первого уровня.
Для рекурсивного подсчета файлов в каталоге выполните команду find следующим образом:
find DIR_NAME -type f | wc -l
Другая команда, которая может использоваться для подсчета файлов tree, выводит содержимое каталогов в древовидном формате:
tree DIR_NAME
Последняя строка вывода покажет общее количество файлов и каталогов в списке:
15144 directories, 91311 files
Мы показали вам, как сосчитать файлы в каталоге с помощью команд ls, find и tree.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.