Подсчет количества файлов линукс

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

Хотя не очень часто, бывают случаи, когда вам нужно узнать, сколько файлов находится в данном каталоге. Например, если у вас закончились inodes в вашей системе Linux, вам нужно будет найти, какой каталог содержит тысячи или миллионы файлов.

В этой статье мы покажем вам несколько различных способов определения количества файлов в каталоге в Linux.

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

Самый простой способ подсчитать файлы в каталоге — перечислить по одному файлу в строке с помощью ls и направить вывод в wc для подсчета строк:

Приведенная выше команда даст вам сумму всех файлов, включая каталоги и символические ссылки. Параметр -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 котором содержимое каталогов отображается в древовидном формате:

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

15144 directories, 91311 files 

Выводы

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

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

Источник

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

Появилась примитивное задание: необходимо посчитать в linux количество файлов в папке. Существует различные вариации, и сейчас в своей статье «Подсчитать количество файлов в папке на Unix/Linux» я приведу немного из них. Мы уже говорили о многих командах Linux, которые вы можете использовать для того, чтобы делать свою работу с этой системой проще. В сегодняшней статье поговорим о такой багаж, которая становится нужной не очень часто. Сегодня мы рассмотрим как посчитать количество файлов в папке Linux разными способами с помощью разных команд. Ниже приведены лучшие способы поиска и подсчета численности файлов и папок в конкретной директории. Единственное, что у вас есть, это если у вас есть имена файлов или имена каталогов, содержащие символ новой строки, что маловероятно. Если вам действительно нужно беспокоиться о новых символах в именах файлов или именах каталогов, я предлагаю вам их найти и исправить, чтобы они не содержали символы новой строки (и спокойно убеждали виновную сторону в ошибках их способов).

Читайте также:  Linux повысить приоритет процесса

Итак, SSH клиент задорно мигнул и представил моему взору голую консоль бзди. Вообще, у нас на работе всеми животными (linux’ами) и адскими созданиями (freebsd) рулит Lord_of_fear. Я знал, что lord непременно знает ответ на мучивший меня вопрос, но решил попытаться дойти до решения самостоятельно. Сначала я думал, что мою скромную потребность может удовлетворить команда ls. Тыкал и так и сяк, но, то, что мне, было, нужно не нашел. Почему я подумал на ls? Да потому что с помощью ls выдает список файлов и папок запрашиваемого каталога в разных представлениях. Мне как человеку с отсутствием должного опыта показалось логично, что операция как подсчет файлов полюбас должна быть организована. Увы, я ошибся. Ну, ничего, стал ковырять дальше.

Подсчитать количество файлов в папке Linux с помощью find

Чтобы посчитать количество всех файлов в определенной директории (например /home/captain) возможно использовать команду find и она посчитает количество файлов рекурсивно для всех вложенных папок:

find /home/captain -type f| wc -l

Дабы посчитать количество всех папок в определенной директории (например /home/captain) возможно использовать команду find и она посчитает количество папок рекурсивно для всех вложенных директория:

find /home/captain -type d| wc -l

Хочу отметить следующее, что утилита find трудится хорошо, но очень нагружает сервер, лучше использовать команду ls.

Подсчитать количество файлов в папке применяя ls

Чтобы посчитать количество всех файлов в определенной директории (например /home/captain) возможно так же использовать команду fls и она посчитает количество файлов. Самый простой способ решить эту задачку — использовать утилиту ls вместе с утилитой wc. Они покажут сколько файлов находится в текущей папке:

Когда Вам необходимо подсчитать довольно большое количество (категория, выражающая внешнее, формальное взаимоотношение предметов или их частей, а также свойств, связей: их величину, число, степень проявления того или иного свойства) файлов, данный метод является наиболее быстрым.

Эта команда активирует опцию -a, таким образом . , .. и другие компданные начинающиеся с . , также будут подсчитаны.
Используя команду «find»:

$ find . -type f -maxdepth 1 | wc -l

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

Следующая команда рекурсивно считает количество файлов в нынешной директории и всех ее поддиректориях:

Рекурсивно подсчитать количество папок в Linux

Последующая команда рекурсивно считает количество папок в текущей директории и всех ее поддиректориях:

Подсчитать количество файлов «определенного типа» в Linux

Следующая команда рекурсивно считает число файлов с расширением «.txt» в текущей директории и всех ее поддиректориях:

$ find . -type f -name «*.txt» | wc -l

В данной небольшой статье мы рассмотрели как посмотреть количество файлов в папке Linux. Как видите, это весьма просто. Надеюсь, эта информация была полезной для вас. Если у вас остались вопросы, спрашивайте в комментах!

Источник

Количество файлов в папке Linux

Мы уже говорили о многих командах Linux, которые вы можете использовать для того, чтобы сделать свою работу с этой системой проще. В сегодняшней статье поговорим о такой вещи, которая становится нужной не очень часто. Сегодня мы рассмотрим как посчитать количество файлов в папке Linux различными способами с помощью разных команд.

Читайте также:  Linux fingerprint reader driver

Это может быть полезно во многих случаях, например, при написании различных скриптов и других подобных работ. Я попытаюсь охватить все возможные способы сделать это в терминале.

Как посмотреть количество файлов в папке Linux

Самый простой способ решить эту задачу — использовать утилиту ls вместе с утилитой wc. Они покажут сколько файлов находится в текущей папке:

В моем случае утилита выдала результат 21, но поскольку ls выводит размер всех файлов в папке строкой total, то у нас файлов на один меньше. Нужно учесть, что тут отображаются еще и директории. Каждая директория начинается с символа «d», а каждый файл с «-«. Для символических ссылок используется «l». Посмотрите внимательно на вывод ls:

Чтобы их отсеять используйте grep:

Эта конструкция выберет только те строки, которые начинаются на дефис. Если вас интересуют не только обычные файлы, но и скрытые, то можно использовать опцию -a:

Так можно подсчитать количество папок:

А так символических ссылок:

Если вам нужно подсчитать количество файлов во всех подпапках, то можно использовать опцию -R:

С фильтром только файлы нам уже не страшно, что команда будет выводить служебную информацию. Если вы не хотите использовать ls, можно воспользоваться утилитой find:

find . -maxdepth 1 -type f | wc

Если нужно смотреть не только количество файлов в папке, но и подпапок, просто не нужно использовать -type f:

find . -maxdepth 1 -type d | wc

А в случае, когда необходимо перебрать все файлы во всех подпапках, не устанавливайте параметр -maxdepth:

Все эти команды это очень хорошо, но есть еще одно, более удобное средство посчитать количество файлов linux, это утилита tree.

Количество файлов в папке с помощью tree

Утилита tree выводит дерево файлов и папок, а потом подсчитывает их количество по отдельности. Кроме того, утилита имеет множество опций и настроек. Но она не поставляется в системе по умолчанию. Для ее установки в Ubuntu выполните:

Синтаксис утилиты очень прост:

$ tree опции каталог

Теперь разберем ее основные опции:

  • -a — выводить все файлы, включая файлы, которые начинаются на точку;
  • -d — выводить только директории;
  • -l — открывать символические ссылки;
  • -f — выводить полный путь к файлу;
  • -x — оставаться только в пределах этого раздела, не переходить по точкам монтирования;
  • -L — устанавливает максимальный уровень вложенности;
  • -P — выбирать только те файлы и папки, которые подходят под регулярное выражение;
  • -I — не выводить файлы, которые подходят под регулярное выражение;
  • —prune — не выводить пустые папки;
  • -o — записать вывод в файл;

В утилиты есть еще опции по сортировке выводимого дерева и по формату вывода имен файлов, но мы не будем их рассматривать, поскольку нас интересует только количество файлов в папке Linux. Сначала считаем количество файлов и папок во всех подпапках:

Теперь только в текущей, задаем максимальную вложенность равной единице:

Еще можем включить вывод всех файлов, включая скрытые:

Читайте также:  Linux ftp server directory

Или выберем только те, которые содержат второй символ в имени «a»:

Выводы

В этой небольшой статье мы рассмотрели как посмотреть количество файлов в папке Linux. Как видите, это очень просто. Надеюсь, эта информация была полезной для вас. Если у вас остались вопросы, спрашивайте в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Подсчитать количество файлов в папке на Unix/Linux

Возникла примитивное задание: необходимо посчитать количество файлов или папок в определенной директории. Существует разные вариации, и сейчас в своей статье «Подсчитать количество файлов в папке на Unix/Linux» я приведу несколько из них.

Подсчитать количество файлов в папке на Unix/Linux с помощью команды find.

Чтобы посчитать количество всех файлов в определенной директории (например /home/captain) можно использовать команду find и она посчитает количество файлов рекурсивно для всех вложенных папок:

# find /home/captain -type f| wc -l

Чтобы посчитать количество всех папок в определенной директории (например /home/captain) можно использовать команду find и она посчитает количество папок рекурсивно для всех вложенных директорий:

# find /home/captain -type d| wc -l

Хочу отметить следующее, что утилита find работает хорошо, но очень нагружает сервер, лучше использовать команду ls.

Подсчитать количество файлов в папке на Unix/Linux с помощью команды ls.

Чтобы посчитать количество всех файлов в определенной директории (например /home/captain) можно так же использовать команду fls и она посчитает количество файлов:

Чтобы посчитать количество всех файлов в определенной директории (например /home/captain) можно так же использовать команду fls и она посчитает количество файлов рекурсивно для всех вложенных папок:

$ ls -l /home/captain| grep ^- | wc -l

Чтобы посчитать количество всех папок в определенной директории (например /home/captain) можно так же использовать команду ls и она посчитает количество папок рекурсивно для всех вложенных директорий:

$ ls -l /home/captain| grep ^d | wc -l

Чтобы посчитать количество всех файлов в определенной директории (например /home/captain) можно так же использовать команду fls и она посчитает количество файлов определенного типа (txt) рекурсивно для всех вложенных папок:

$ ls –l /home/captain| grep txt| wc -l

Вот и все, я завершаю свою тему «Подсчитать количество файлов в папке на Unix/Linux».

5 thoughts on “ Подсчитать количество файлов в папке на Unix/Linux ”

Никогда так не делайте (и производные из неё):
$ ls -l /home/captain | wc -l
Это хорошо работает только на малых количествах файлов, как только их количество перевалит тысяч за сто-двести вы устанете ждать.
Ускорить можно убрав -l из команды ls:
$ ls /home/captain | wc -l
Дело в том, что ключ -l заставляет читать метаинформацию по каждому файлу — дата изменения, права и прочее. Если этого не делать, подсчёт пойдёт гораздо бодрее

Да, не забудьте указать ключ -a, иначе скрытые файлы (название начинается с точки) не будут подсчитаны.
Ну а самый быстрый способ, используя ls:
$ ls -f /home/captain | wc -l
Почему — читайте мануалы

Спасибо за дополнение! Я стараюсь писать заметки сначало то что знаю и проверено, а потом — дополняю новым. У меня не было столько файлов (пару тысяч) в папке. Ну и да, если прогнать командой «find» сначала — то поиск быстрей будет 😉

Источник

Оцените статью
Adblock
detector