Как подсчитать файлы в каталоге в Linux

Хотя не очень часто, бывают случаи, когда вам нужно узнать, сколько файлов находится в данном каталоге. Например, если у вас закончились inodes в вашей системе 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 -type f указывает find выводить список только файлов (включая файлы точек), а -maxdepth 1 ограничивает поиск каталогом первого уровня.

Рекурсивный подсчет файлов в каталоге

Чтобы рекурсивно подсчитать файлы в каталоге, выполните команду find следующим образом:

find DIR_NAME -type f | wc -l

Другая команда, которую можно использовать для подсчета файлов, — это tree котором содержимое каталогов отображается в древовидном формате:

tree DIR_NAME

Последняя строка вывода покажет общее количество перечисленных файлов и каталогов:

15144 directories, 91311 files

Выводы

Мы показали вам, как подсчитать количество файлов в каталоге с помощью команд ls , find и tree .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Оставьте комментарий

Ваш адрес email не будет опубликован.