Как посчитать количество файлов в директории linux
Перейти к содержимому

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

  • автор:

linux сколько файлов в папке

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

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

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

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

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

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

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

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

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

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

Главное меню » Операционная система Linux » Подсчет количества файлов в каталоге в Linux

Podschet kolichestva fajlov v kataloge v Linux

Мы предполагаем, что вы знаете о команде wc для подсчета количества строк. Мы можем использовать ту же команду wc с командой ls для подсчета количества файлов в каталоге.

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

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

Позвольте нам сначала показать вам содержимое тестового каталога, который я собираюсь использовать в этой статье:

Вы можете видеть, что у него есть 9 файлов (включая один скрытый файл) и 2 подкаталога в этом каталоге. Но вам не нужно делать это вручную. Давайте посчитаем количество файлов с помощью команд Linux.

Подсчитать количество файлов и каталогов (без скрытых файлов)

Вы можете просто запустить комбинацию команды ls и wc, и она отобразит количество файлов:

Есть проблема с этой командой. Он считает все файлы и каталоги в текущих каталогах. Но он не видит скрытые файлы (файлы, имена которых начинаются с точки).

По этой причине приведенная выше команда показала мне количество файлов 10 вместо 11 (9 файлов и 2 каталога).

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

Это даст вам правильное количество файлов и каталогов в текущем каталоге. Посмотрите на вывод, который показывает количество 11 (9 файлов и 2 каталога):

Вы также можете использовать эту команду для достижения того же результата:

Обратите внимание, что используется опция 1 (один), а не l (L). Использование опции l (L) отображает дополнительную строку в начале вывода (см. «Всего 64» в выводе каталога в начале статьи). Использование 1 (одного) списка по одному контенту в строке, исключая дополнительную строку. Это дает более точный результат.

Подсчитать количество файлов и каталогов, включая подкаталоги

Пока что вы видите количество файлов и каталогов только в текущем каталоге. Он не учитывает файлы в подкаталогах.

Если вы хотите подсчитать количество файлов и каталогов во всех подкаталогах, вы можете использовать команду дерева.

Эта команда показывает структуру каталогов, а затем выводит сводку внизу вывода.

Как вы можете видеть в выводе, это показывает, что всего имеется 7 каталогов и 20 файлов. Хорошая вещь об этом результате – то, что он не считает каталоги в количестве файлов.

Считайте только файлы, а не каталоги

Вы можете запустить эту команду:

Приведенная выше команда провела поиск всех файлов (тип f) в текущем каталоге и его подкаталогах.

Подсчитывать только файлы, а не каталоги и только в текущем каталоге, а не в подкаталогах

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

Все, что вам нужно сделать, это добавить «глубину» вашей находки. Если вы установите его на 1, он не будет входить в подкаталоги.

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

Мы надеемся, что этот учебник по Linux помог вам узнать несколько вещей. Оставайтесь на связи, чтобы узнать больше советов по Linux.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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

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

но когда я запускаю это, он возвращает следующую ошибку.

find: пути должны предшествовать выражению:/

20 ответов

это должно работать:

объяснение:

Примечания:

объяснение, почему ваш пример не работает:

в команда, которую вы показали, вы не используете «трубу» ( | ) для подключения двух команд, но сломанной панели ( ¦ ) что интерпретатор не распознает как команду или что-то подобное. Вот почему вы получаете это сообщение об ошибке.

для текущего каталога:

Если вы хотите разбивку, сколько файлов в каждом каталоге под вашим текущим dir:

после установки дерево пакета с

(на машине Debian / Mint / Ubuntu Linux).

команда показывает не только количество файлов, но и количество каталогов, отдельно. Параметр-L можно использовать для указания максимального уровня отображения (который по умолчанию является максимальной глубиной дерева каталогов).

вторая строка имеет количество файлов, 150,481 в приведенном выше примере. В качестве бонуса вы получаете общий размер (в байтах).

объединение нескольких ответов здесь вместе, наиболее полезным решением, по-видимому, является:

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

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

Это будет работать в GNU flavour и просто опустить-e из команды echo для BSD linux (например, OSX).

например, рассмотрим случай, когда у нас есть один файл с одним символом EOL в нем

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

или если ваш find поддерживает

7cd4edccd2700740e71eaa759690f22b

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

чтобы установить его на Ubuntu:

Benchmark: я использовал https://archive.org/details/cv_corpus_v1.tar (380390 файлы, 11 ГБ) как папка, в которой нужно подсчитать количество файлов.

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

Он может быть на порядок быстрее, чем ls или find подходы, но YMMV.

создайте массив записей с помощью () и получите счетчик с #.

Ok, который не рекурсивно подсчитывает файлы, но я хотел сначала показать простой вариант. Распространенным вариантом использования может быть создание резервных копий файла с опрокидыванием. Это создаст файл журнала.1, logfile.2, logfile.3 и т. д.

чтобы получить количество файлов рекурсивно, мы все еще можем использовать find таким же образом.

есть много правильных ответов здесь. Вот еще!

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

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

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

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

Snimok ekrana ot 2017 09 01 10 09 14

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

Snimok ekrana ot 2017 09 01 10 09 41

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

Snimok ekrana ot 2017 09 01 10 10 01

Snimok ekrana ot 2017 09 01 10 10 41

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

Snimok ekrana ot 2017 09 01 10 10 57

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

Snimok ekrana ot 2017 09 01 10 11 13

Snimok ekrana ot 2017 09 01 10 12 30

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

Snimok ekrana ot 2017 09 01 10 12 48

Snimok ekrana ot 2017 09 01 10 13 03

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

Snimok ekrana ot 2017 09 01 10 13 49

Snimok ekrana ot 2017 09 01 10 14 17

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

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

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

$ sudo apt install tree

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

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

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

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

Snimok ekrana ot 2017 09 01 10 14 45

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

Snimok ekrana ot 2017 09 01 10 15 03

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

Snimok ekrana ot 2017 09 01 10 15 19

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

Snimok ekrana ot 2017 09 01 10 16 49

Выводы

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

IT Blog. Code Inside

rss

Считаем количество файлов в подкаталогах на Linux

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

oops files 2

Панель управления информации о том, чем же на сервере исчерпано всё доступное количество файлов, не дает:

oops files 3

Штатные средства не дают особо четкой картины. Но если есть доступ к SSH на сервере, можно попробовать вычислить самую «прожорливую» папку через консоль.

Внимание! Указанные методы представляют собой пофайловый перебор и могут загрузить сервер. При большом количестве файлов время выполнения достаточно долгое.

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

Решить проблему мне помогли приведенные ниже два способа. Они позволяют узнать, сколько файлов в каждом подкаталоге текущего каталога:

oops files 5

Для выхода после окончания выполнения нажмите q

oops files 6

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

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

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

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

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

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

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

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

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

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

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

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

Вот и все, я завершаю свою тему «Подсчитать количество файлов в папке на 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» сначала — то поиск быстрей будет ��

Это НЕ правильно, т.к считает ерунду, а нужно только файлы

ls -laR /home/captain | grep «^-» | wc -l
Посчитает все файлы в папке + во вложенных папках

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

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

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

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

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

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

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

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

Приведенная выше команда даст вам сумму всех файлов, включая каталоги и символические ссылки. Параметр -1 означает перечисление одного файла в каждой строке, а -U указывает ls не сортировать вывод, что ускоряет выполнение команды.

ls -1U не считает скрытые файлы (файлы точек).

Если вы хотите подсчитывать только файлы и не включать каталоги, используйте следующее:

Параметр -p заставляет ls добавлять в каталоги индикатор косой черты ( / ). Вывод передается команде grep -v , исключающей каталоги.

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

Параметр -type -type f указывает find выводить список только файлов (включая файлы точек), а -maxdepth 1 ограничивает поиск каталогом первого уровня.

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

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

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

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

Выводы

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

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

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

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