
Хотя это случается нечасто, бывают случаи, когда нужно узнать, сколько файлов находится в заданном каталоге. Например, если в вашей системе 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 выводить только файлы (включая dot-файлы), а -maxdepth 1 ограничивает поиск каталогом первого уровня.
Рекурсивный подсчет файлов в каталоге
Для рекурсивного подсчета файлов в каталоге выполните команду find следующим образом:
find DIR_NAME -type f | wc -l
Еще одна команда, которую можно использовать для подсчета файлов, — это tree , которая выводит список содержимого каталогов в древовидном формате:
tree DIR_NAME
Последняя строка вывода покажет общее количество перечисленных файлов и каталогов:
15144 directories, 91311 files
Заключение
Мы показали вам, как подсчитать количество файлов в каталоге с помощью команд ls , find и tree .
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства