linux сколько файлов в папке
Первое решение (что называется «в лоб») для подсчета количества файлов в linux директории:
Недостатки: будет выведено общее количество записей в текущей директории с учетом всех подпапок, включая текущую (.) и верхнюю (..), что, на мой взгляд, не верно. К тому же, при очень большом количестве, когда не срабатывает ls, эта команда, естественно, тоже не даст результата.
Более правильное решение:
В этом случае будет выведено количество только файлов и только в текущей директории без учета вложенных. Соответственно, можно модифицировать данную команду для подсчета файлов на данном уровне и во всех вложенных папках следующего уровня:
Если же нужно подсчитать только все файлы в папке с учетом всех подпапок всех уровней вложенности (например, некоторые провайдеры хостинга вводят ограничение по количеству файлов на бесплатных или дешевых тарифах), то следует выполнить:
Посчитать общее количество всех файлы и папок с учетом вложенных директорий рекурсивно:
Рекурсивно посчитать количество только вложенных папок в текущей директории и всех поддиректориях можно следующим образом:
И наконец, если надо посчитать количество файлов определенного типа (например, фото товаров в интернет магазине):
В случае, если вы действительно считаете картинки товаров в магазине и их много, не забудьте, что, могли быть загружены файлы не только с расширением «.jpg», но и «.png», и «.jpeg», и «.gif», а также то, что регистр символов в имени файла в linux имеет значение. Поэтому даже для подсчета JPEG файлов имеет смысл использовать команду:
Подсчет количества файлов в каталоге в Linux
Главное меню » Операционная система Linux » Подсчет количества файлов в каталоге в 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 поддерживает
Он имеет индикатор выполнения, что удобно, если у вас есть много файлов:
чтобы установить его на 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
В моем случае утилита выдала результат 21, но поскольку ls выводит размер всех файлов в папке строкой total, то у нас файлов на один меньше. Нужно учесть, что тут отображаются еще и директории. Каждая директория начинается с символа «d», а каждый файл с «-«. Для символических ссылок используется «l». Посмотрите внимательно на вывод ls:
Чтобы их отсеять используйте grep:
Так можно подсчитать количество папок:
А так символических ссылок:
С фильтром только файлы нам уже не страшно, что команда будет выводить служебную информацию. Если вы не хотите использовать ls, можно воспользоваться утилитой find:
Только папки отдельно:
Все эти команды это очень хорошо, но есть еще одно, более удобное средство посчитать количество файлов linux, это утилита tree.
Количество файлов в папке с помощью tree
Утилита tree выводит дерево файлов и папок, а потом подсчитывает их количество по отдельности. Кроме того, утилита имеет множество опций и настроек. Но она не поставляется в системе по умолчанию. Для ее установки в Ubuntu выполните:
$ sudo apt install tree
Синтаксис утилиты очень прост:
$ tree опции каталог
Теперь разберем ее основные опции:
В утилиты есть еще опции по сортировке выводимого дерева и по формату вывода имен файлов, но мы не будем их рассматривать, поскольку нас интересует только количество файлов в папке Linux. Сначала считаем количество файлов и папок во всех подпапках:
Теперь только в текущей, задаем максимальную вложенность равной единице:
Еще можем включить вывод всех файлов, включая скрытые:
Или выберем только те, которые содержат второй символ в имени «a»:
Выводы
В этой небольшой статье мы рассмотрели как посмотреть количество файлов в папке Linux. Как видите, это очень просто. Надеюсь, эта информация была полезной для вас. Если у вас остались вопросы, спрашивайте в комментариях!
IT Blog. Code Inside
Считаем количество файлов в подкаталогах на Linux
Панель управления сервером показывает неутешительную картину. Количество файлов, которое можно загрузить в текущую учетную запись shared хостинга, исчерпано:
Панель управления информации о том, чем же на сервере исчерпано всё доступное количество файлов, не дает:
Штатные средства не дают особо четкой картины. Но если есть доступ к SSH на сервере, можно попробовать вычислить самую «прожорливую» папку через консоль.
Внимание! Указанные методы представляют собой пофайловый перебор и могут загрузить сервер. При большом количестве файлов время выполнения достаточно долгое.
Простой метод, позволяющий посчитать, сколько файлов всего в текущей папке (этот метод хорош, только если вы точно знаете, где искать):
Решить проблему мне помогли приведенные ниже два способа. Они позволяют узнать, сколько файлов в каждом подкаталоге текущего каталога:
Для выхода после окончания выполнения нажмите q
В качестве вывода могу отметить, что со значительной вероятностью лимит файлов исчерпал либо кэш 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 .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.