Хотя не очень часто, бывают случаи, когда вам нужно узнать, сколько файлов находится в данном каталоге. Например, если у вас закончились 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
.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.