- Как узнать количество файлов и папок в директории
- Как подсчитать количество файлов в папке?
- Подсчитать количество файлов в папке Linux с помощью find
- Подсчитать количество файлов в папке применяя ls
- Рекурсивно подсчитать количество файлов в Linux
- Рекурсивно подсчитать количество папок в Linux
- Подсчитать количество файлов «определенного типа» в Linux
- Количество файлов в папке Linux
- Как посмотреть количество файлов в папке Linux
- Количество файлов в папке с помощью tree
- Выводы
Как узнать количество файлов и папок в директории
Один из простых способов подсчитать количество файлов и подкаталогов в директории является использование команды tree. Команда выводит дерево файлов и директорий, а так же показывает информацию о количестве в конце списка. Если директория не задана, то по умолчанию подразумевается что просматривается текущая директория.
Давайте приступим, первым делом нужно убедиться, что у вас установлена данная утилита, если нет, то её следует установить. В моем примере используется операционная система CentOS, поэтому установка будет выглядеть следующим образом.
Установка tree на CentOS Linux
Установка tree на Ubuntu
Как известно многие утилиты семейства Unix можно повстречать на различных его дистрибутивах, и FreeBSD не стал исключением.
Установка tree на FreeBSD
# cd /usr/ports/sysutils/tree && make BATCH=yes install clean
С установкой разобрались, после того как вы убедились, что у вас в системе есть утилита tree, можно приступать к её использованию.
Если запустить утилиту без опций, то она выведет список всех каталогов и файлов, начиная с текущей позиции.
Полезные опции
‑-help – краткая справка по утилите (для просмотра полной есть команда man tree);
-а – показывать все файлы, скрытые – включительно (по ум. не показываются);
-d – показать только директории;
-l – показывать содержимое директорий симлинков;
-f – показывать полный путь к файлам/директориям;
-u – показывать владельца файла/директории;
-g – показывать группу-владельца файла/директории;
-s – показывать размер файла/директории (в байтах);
-h – показывать размер файла/директории в «человеческом» виде (Кб, Мб);
-D – показывать дату последней модификации;
-L – показывать только до указанной вложенности;
-с – включает подсветку типов;
-o – вывести данные в файл (вместо stdout);
Пример использования команды tree
Один из интересных способов вывода списка это генерация html страницы. При открытии html файла в браузере результат будет представлен в виде дерева, кроме того в качестве указателей на файлы будут ссылки, кликнув по которым можно открывать файл (если есть права). Теперь представьте, есть директория со списком файлов, скажем это какие либо звуковые файлы. Необходимо сгенерировать список, чтобы можно было открывать его в браузере. Пробуем это сделать таким образом:
$ tree -a -H ~/voices/ -o ~/listen.html --dirsfirst ~/voices
После выполнения команды в домашней директории будет создан файл listen.html. При открытии его через браузер мы увидим кликабельный список.
Записывать в файл так же умеет команда ls, для примера давайте запишем список содержимого директории в текстовый файл.
После выполнения команды в текстовый файл files.txt будет записан список всех файлов и вложенных директорий (-R) папки voices.
Подобные методы довольно своеобразны, иногда бывает достаточно просмотра списка файлов и директории в окне консоли. На практике потребность подобного рода может повстречаться, или не повстречаться вовсе, однако знать о том, что такие возможности есть весьма полезно.
Как подсчитать количество файлов в папке?
Появилась примитивное задание: необходимо посчитать в 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
Следующая команда рекурсивно считает количество файлов в нынешной директории и всех ее поддиректориях:
Рекурсивно подсчитать количество папок в Linux
Последующая команда рекурсивно считает количество папок в текущей директории и всех ее поддиректориях:
Подсчитать количество файлов «определенного типа» в Linux
Следующая команда рекурсивно считает число файлов с расширением «.txt» в текущей директории и всех ее поддиректориях:
$ find . -type f -name «*.txt» | wc -l
В данной небольшой статье мы рассмотрели как посмотреть количество файлов в папке Linux. Как видите, это весьма просто. Надеюсь, эта информация была полезной для вас. Если у вас остались вопросы, спрашивайте в комментах!
Количество файлов в папке Linux
Мы уже говорили о многих командах Linux, которые вы можете использовать для того, чтобы сделать свою работу с этой системой проще. В сегодняшней статье поговорим о такой вещи, которая становится нужной не очень часто. Сегодня мы рассмотрим как посчитать количество файлов в папке Linux различными способами с помощью разных команд.
Это может быть полезно во многих случаях, например, при написании различных скриптов и других подобных работ. Я попытаюсь охватить все возможные способы сделать это в терминале.
Как посмотреть количество файлов в папке Linux
Самый простой способ решить эту задачу — использовать утилиту ls вместе с утилитой wc. Они покажут сколько файлов находится в текущей папке:
В моем случае утилита выдала результат 21, но поскольку ls выводит размер всех файлов в папке строкой total, то у нас файлов на один меньше. Нужно учесть, что тут отображаются еще и директории. Каждая директория начинается с символа «d», а каждый файл с «-«. Для символических ссылок используется «l». Посмотрите внимательно на вывод ls:
Чтобы их отсеять используйте grep:
Эта конструкция выберет только те строки, которые начинаются на дефис. Если вас интересуют не только обычные файлы, но и скрытые, то можно использовать опцию -a:
Так можно подсчитать количество папок:
А так символических ссылок:
Если вам нужно подсчитать количество файлов во всех подпапках, то можно использовать опцию -R:
С фильтром только файлы нам уже не страшно, что команда будет выводить служебную информацию. Если вы не хотите использовать ls, можно воспользоваться утилитой find:
find . -maxdepth 1 -type f | wc
Если нужно смотреть не только количество файлов в папке, но и подпапок, просто не нужно использовать -type f:
find . -maxdepth 1 -type d | wc
А в случае, когда необходимо перебрать все файлы во всех подпапках, не устанавливайте параметр -maxdepth:
Все эти команды это очень хорошо, но есть еще одно, более удобное средство посчитать количество файлов linux, это утилита tree.
Количество файлов в папке с помощью tree
Утилита tree выводит дерево файлов и папок, а потом подсчитывает их количество по отдельности. Кроме того, утилита имеет множество опций и настроек. Но она не поставляется в системе по умолчанию. Для ее установки в Ubuntu выполните:
Синтаксис утилиты очень прост:
$ tree опции каталог
Теперь разберем ее основные опции:
- -a — выводить все файлы, включая файлы, которые начинаются на точку;
- -d — выводить только директории;
- -l — открывать символические ссылки;
- -f — выводить полный путь к файлу;
- -x — оставаться только в пределах этого раздела, не переходить по точкам монтирования;
- -L — устанавливает максимальный уровень вложенности;
- -P — выбирать только те файлы и папки, которые подходят под регулярное выражение;
- -I — не выводить файлы, которые подходят под регулярное выражение;
- —prune — не выводить пустые папки;
- -o — записать вывод в файл;
В утилиты есть еще опции по сортировке выводимого дерева и по формату вывода имен файлов, но мы не будем их рассматривать, поскольку нас интересует только количество файлов в папке Linux. Сначала считаем количество файлов и папок во всех подпапках:
Теперь только в текущей, задаем максимальную вложенность равной единице:
Еще можем включить вывод всех файлов, включая скрытые:
Или выберем только те, которые содержат второй символ в имени «a»:
Выводы
В этой небольшой статье мы рассмотрели как посмотреть количество файлов в папке Linux. Как видите, это очень просто. Надеюсь, эта информация была полезной для вас. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.