Введение
Могут быть случаи, когда вам нужно узнать, сколько файлов находится в определенном каталоге. Например, если у вас закончились индексные дескрипторы в вашей системе Linux, вам нужно будет найти, какой каталог содержит тысячи или миллионы файлов.
В этой статье мы покажем вам несколько способов узнать количество файлов в каталоге в Linux.
Подсчитайте файлы в каталоге
Самый простой способ подсчитать файлы в каталоге — перечислить по одному файлу в строке с помощью ls
и направить вывод для подсчета строк wc
:
ls -1 DIR_NAME | wc -l
Приведенная выше команда даст вам сумму всех файлов, включая каталоги и символические ссылки. Если вы хотите подсчитывать только файлы и не включать каталоги, вы можете использовать следующее:
ls -1p DIR_NAME | grep -v /| wc -l
Параметр -p
позволяет добавлять косую черту /
флаг к каталогам. Вывод перенаправляется на команду grep -v
, которая исключает каталоги.
ls -1
Чтобы иметь больший контроль над перечисленными файлами, вы можете использовать команду 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
В последней строке вывода будет показано общее количество перечисленных файлов и каталогов:
11255 directories, 61231 files
Вывод
Мы показали вам, как подсчитать количество файлов в каталоге с помощью команд ls
, find
и tree
.