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

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

Чтобы быстро определить количество файлов в каталоге, используйте ls и перенаправьте вывод в команду wc -l , которая выводит количество строк, пришедших на ее вход.

Для вывода общего количества файлов в текущем каталоге введите:

Общее количество файлов — 19.

Поскольку ls по умолчанию не показывает скрытые файлы, приведенная выше команда не будет их учитывать. Опция -A для ls позволит посчитать обычные и скрытые файлы:

Чтобы посчитать количество файлов во всем дереве каталогов, а не только в отдельном каталоге, используйте f ind вместо ls , и укажите специальный ключ для f ind — строку ! -type d , чтобы исключить вывод и подсчет каталогов.

Чтобы вывести количество файлов в дереве , введите:

Чтобы вывести количество файлов и каталогов в дереве , введите:

Чтобы вывести количество каталогов в дереве , введите:

Графические средства

В Gnome есть графический инструмент поиска gnome-search-tool. После запуска программа предоставляет минимально необходимый интерфейс, через который указывается маска для имени файла и каталог для поиска. Постепенно можно добавить новые критерии поиска; некоторые из них показаны на рисунке. Эти критерии понятны из нашего разговора о f ind , и для поиска gnome-search-tool в фоновом режиме запускает f ind : при попытке переименовать исполняемый файл f ind и обнаружили, что после этого gnome-search-tool выдал ошибку «Не могу запустить дочерний процесс f ind». В KDE есть похожее средство под названием K F ind, с немного иначе организованным интерфейсом: критерии поиска разделены на три вкладки.

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

Первое решение (что называется «в лоб») для подсчета количества файлов в linux директории:

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

Более правильное решение:

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

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

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

Рекурсивно посчитать количество только вложенных папок в текущей директории и всех поддиректориях можно следующим образом:

И наконец, если надо посчитать количество файлов определенного типа (например, фото товаров в интернет магазине):

В случае, если вы действительно считаете картинки товаров в магазине и их много, не забудьте, что, могли быть загружены файлы не только с расширением «.jpg», но и «.png», и «.jpeg», и «.gif», а также то, что регистр символов в имени файла в linux имеет значение. Поэтому даже для подсчета JPEG файлов имеет смысл использовать команду:

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

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

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

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

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

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

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

ls -l | grep «^-» | wc

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

ls -la | grep «^-» | wc

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

ls -la | grep ^d | wc

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

ls -la | grep ^l | wc

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

ls -laR | grep «^-» | wc

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

find . -maxdepth 1 -type f | wc

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

find . -maxdepth 1 | wc

Только папки отдельно:

find . -maxdepth 1 -type d | wc

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

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

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

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

$ sudo apt install tree

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

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

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

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

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

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

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

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

Выводы

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

Оцените статью:

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

4 комментария

а зачем в grep символ — «^»?

Якорь начала строки.

публиковать ответы консоли вместо текста в виде огромных картинок это решение на 10 баллов )

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

Появилась примитивное задание: необходимо посчитать в linux количество файлов в папке. Существует различные вариации, и сейчас в своей статье «Подсчитать количество файлов в папке на Unix/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

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

$ find . -type f | wc -l

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

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

$ find . -type d | wc -l

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *