Вы хотите узнать количество файлов (либо .txt, .sh, либо .jpg) или каталогов, находящихся в определенном каталоге в Linux? Тогда вы попали по адресу. В этой статье вы узнаете, как определить количество файлов и каталогов в определенном каталоге.
Подсчёт количества файлов и каталогов в определённой директории
Существует множество способов найти или подсчитать количество файлов и каталогов в определённой директории, но сегодня мы покажем вам, как это делается с помощью самой популярной команды find, которая предустановлена в большинстве дистрибутивов Linux и позволяет быстро выполнить эту задачу, не потребляя много системных ресурсов.
Мы будем использовать созданный мной каталог my_dir для демонстрации всех примеров. Вы можете просмотреть все файлы и каталоги, которые он содержит, в следующей иерархии.
Итак, давайте начнём эту статью с поиска и подсчёта количества каталогов в определённом каталоге Linux.
Поиск и подсчёт количества каталогов в определённом каталоге
Нам нужно знать две вещи: во-первых, количество каталогов в определённом каталоге, а во-вторых, количество вложенных каталогов (каталогов внутри других каталогов) в этом конкретном каталоге.
Итак, начнём с определения количества каталогов в определённом каталоге с помощью следующей команды:
$ find my_dir/* -mindepth 0 -maxdepth 0 -type d
Чтобы узнать, какие каталоги (включая вложенные) находятся в определённом каталоге, можно использовать следующую команду:
$ find my_dir/* -type d
Наконец, вместо того чтобы выводить их на экран, вы можете подсчитать количество вхождений каталогов и вывести общую сумму с помощью команды wc:
$ find my_dir/* -mindepth 0 -maxdepth 0 -type d | wc -l $ find my_dir/* -type d | wc -l
Поиск и подсчет количества файлов в определенной папке
Поиск и подсчет количества файлов в определенной папке так же просты, как и поиск самой папки. Например, чтобы узнать количество файлов в определенной папке верхнего уровня, можно использовать следующую команду:
$ find my_dir/* -mindepth 0 -maxdepth 0 -type f
Чтобы найти все файлы в определённом каталоге (включая файлы в других каталогах), можно использовать следующую команду:
$ find my_dir/* -type f
Наконец, вместо того чтобы выводить их на экран, вы можете подсчитать количество файлов и вывести общую сумму с помощью следующей команды:
$ find my_dir/* -mindepth 0 -maxdepth 0 -type f | wc -l $ find my_dir/* -type f | wc -l
Поиск и подсчет количества определенных файлов в определенной папке
В предыдущем примере вы научились подсчитывать файлы всех типов, но если вас интересуют только определенные типы файлов, вы можете указать их расширение в команде find.
Например, следующие две команды будут искать только текстовые файлы и файлы сценариев оболочки в указанном каталоге верхнего уровня по отдельности.
$ find my_dir/* -mindepth 0 -maxdepth 0 -type f -name "*.txt" $ find my_dir/* -mindepth 0 -maxdepth 0 -type f -name "*.sh"
Чтобы узнать количество определённых файлов во всех вложенных каталогах, можно использовать следующую команду:
$ find my_dir/* -type f -name "*.txt" $ find my_dir/* -type f -name "*.sh"
Наконец, вместо того чтобы выводить их на экран, вы можете подсчитать количество вхождений конкретного файла и вывести общую сумму с помощью следующей команды:
$ find my_dir/* -type f -name "*.txt" | wc -l $ find my_dir/* -type f -name "*.sh" | wc -l
В моём каталоге нет изображений, но если они у вас есть и вы хотите их найти, вы можете указать в команде find несколько расширений файлов изображений, например .jpg, .png, .gif
$ find my_dir/* -type f \( -name "*.png" -o -name "*.jpg" \)
Получите сводную информацию обо всех файлах и каталогах в определенной папке
Если вам нужно просто узнать количество файлов и каталогов в определенной папке, вы можете использовать следующую команду:
$ tree my_dir/ | tail -1