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

Обновлено: 21.11.2024

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

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

Вот различные команды для подсчета количества файлов в Linux.

1. Подсчет файлов с помощью wc

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

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

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

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

Вы также можете направить вывод команды find в команду wc -l, чтобы получить количество файлов в каталоге. Вот синтаксис для того же самого.

Вот пример подсчета всех файлов в папке /data.

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

Еще один момент, о котором следует помнить, это то, что выходные данные команды find также будут отображать все сообщения об ошибках, возникшие во время выполнения. Например, если у вас нет необходимого разрешения, сообщения об ошибках будут считаться частью команды wc. Чтобы избежать этого, вы можете перенаправить сообщения об ошибках в /dev/null, как показано ниже.

Теперь приведенная выше команда подсчитает фактические файлы, к которым у вас есть доступ, и исключит те, к которым у вас нет доступа.

3. Подсчет файлов с использованием дерева

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

Вот пример подсчета количества файлов в каталоге /data.

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

4. Cronjob для подсчета файлов

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

Добавьте следующую строку для подсчета количества файлов в /data и сохраните вывод в файле file_count.txt

Вышеупомянутое задание cron будет запускаться каждый день в 10:00. Теперь вам не нужно вручную запускать команды для подсчета файлов. Вы можете просто открыть файл file_count.txt, чтобы просмотреть количество файлов, присутствующих в этих данных.

Аналогичным образом вы также можете добавить приведенные выше команды в сценарий оболочки, если хотите автоматизировать весь процесс.

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

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

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

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

  1. -type — указывает тип файла для поиска, в приведенном выше случае f означает поиск всех обычных файлов.
  2. -print — действие для печати абсолютного пути к файлу.
  3. -l — эта опция выводит общее количество новых строк, равное общему количеству абсолютных путей к файлам, выводимых командой find.

Общий синтаксис команды find.

Важно! Используйте команду sudo для чтения всех файлов в указанном каталоге, включая файлы в подкаталогах с привилегиями суперпользователя, чтобы избежать ошибок «Отказано в доступе», как показано на снимке экрана ниже:

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

В следующих примерах показано общее количество обычных файлов в каталогах /var/log и /etc соответственно:

Чтобы узнать больше о командах find и wc в Linux, ознакомьтесь со следующей серией статей, где вы найдете дополнительные варианты использования, советы и связанные с ними команды:

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

Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

Мы благодарны за вашу бесконечную поддержку.

Похожие сообщения

1 мысль о «Как найти количество файлов в каталоге и подкаталогах»

Правильный инструмент для использования в этом случае — «дерево». Никаких конвейеров, никаких аргументов не требуется.

Есть что сказать? Присоединяйтесь к обсуждению. Отменить ответ

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

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

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

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

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

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

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

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

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

Это результат:

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

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

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

Возможно, вы уже знаете, что параметр -a команды ls показывает скрытые файлы. Но если вы используете команду ls -a, она также отображает файл . (текущий каталог) и .. (родительский каталог). Вот почему вам нужно использовать параметр -A, который отображает скрытые файлы, за исключением . и .. каталоги.

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

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

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

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

То, что вы видели до сих пор, — это количество файлов и каталогов только в текущем каталоге. Файлы в подкаталогах не учитываются.

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

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

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

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

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

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

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

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

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

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

Вот результат:

В конце…

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

Я надеюсь, что это руководство по Linux помогло вам кое-чему научиться. Оставайтесь на связи, чтобы получить дополнительные советы по Linux.

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

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

Подсчет файлов

Основной подсчет файлов
Для демонстрации здесь приведен пример каталога с несколькими подкаталогами.

Как видите, команда дерева будет рекурсивно печатать всю структуру каталогов с количеством файлов в конце. Однако, если количество файлов и каталогов слишком велико, получение отчета неэффективно.

Альтернативный способ — использовать команды find и wc. Во-первых, команда find создаст список файлов в каталоге. Затем команда wc подсчитает строку вывода, определяя количество файлов.

Команда будет выглядеть примерно так.

В случае с командой find, вот краткое объяснение флагов и аргументов.

  • : каталог, в котором выполняется подсчет файлов.
  • -type f: определяет тип файла (файл/каталог) для поиска. Здесь «f» означает только файлы.

В случае команды wc, вот краткое объяснение флага.

  • -l: подсчитывает количество строк. Он работает, подсчитывая количество символов новой строки в выводе.

Давайте применим команду к нашему тестовому каталогу.

По возможности рекомендуется использовать полный путь к каталогу.

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

Глубина каталога
Команда find поддерживает глубину каталога. Глубина каталога определяет, насколько глубоко будет выполняться поиск файлов.

Есть два типа глубины каталогов, которые находят поддержку.

  • maxdepth: поиск максимального уровня будет опускаться. Значение maxdepth будет неотрицательным целым числом.
  • mindepth: минимальная глубина, необходимая для поиска для работы с каталогом. Значение mindepth будет неотрицательным целым числом.

Давайте посмотрим на эти значения в действии. Структура команды поиска будет выглядеть следующим образом.

Подсчет файлов с помощью графического интерфейса

Если у вас есть возможность использовать графический интерфейс для проверки количества файлов, мы можем подсчитать количество файлов в каталоге с помощью файловых менеджеров. Файловые менеджеры позволяют пользователям элегантно управлять файлами и каталогами. Любой файловый менеджер поддерживает все основные функции, такие как поиск, копирование, перемещение, создание и удаление файлов. Некоторые файловые менеджеры даже поддерживают расширенные функции, такие как SSH-соединения.

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

Файловый менеджер Nautilus
Это файловый менеджер по умолчанию для рабочего стола GNOME. Он имеет очень упрощенный пользовательский интерфейс, удобную навигацию и управление.

Konqueror File Manager
Konqueror — это менеджер по умолчанию, который поставляется с рабочим столом KDE. Он имеет упрощенный файловый менеджер с дополнительными функциями, такими как поддержка FTP/SFTP, общие ресурсы smb (Windows), копирование аудио и т. д.

Konqueror использует механизм рендеринга KHTML. Попробуйте Konqueror.

Диспетчер файлов Dolphin
Dolphin заменяет Konqueror в качестве файлового менеджера по умолчанию на рабочем столе KDE. Это бесплатный легкий файловый менеджер с открытым исходным кодом, который отличается простотой, гибкостью и полной настройкой. Это позволяет пользователям легко просматривать, находить, копировать и перемещать файлы в системе Linux. Он включает в себя другие интересные функции, такие как предварительный просмотр файлов, навигация по вкладкам, сортировка и группировка файлов и т. д.

Файловый менеджер SpaceFM
В отличие от других описанных файловых менеджеров, SpaceFM — это автономный файловый менеджер, не связанный с какой-либо средой рабочего стола. Это прекрасный файловый менеджер, доступный для всех популярных дистрибутивов Linux. Он имеет интеграцию с bash, встроенную VFS, настройку меню и т. д.

GNU Midnight Commander
Наконец, GNU Midnight Commander — файловый менеджер для командной строки. Это полноценный файловый менеджер, но на экране консоли. Он поддерживает все классические функции, такие как поиск, копирование, перемещение и удаление файлов и т. д.

Заключительные мысли

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

Об авторе

Сидратул Мунтаха

Студент CSE. Я люблю Linux и играю с технологиями и гаджетами. Я использую как Ubuntu, так и Linux Mint.

Читайте также: