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

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

  • автор:

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

Argument ‘Topic id’ is null or empty

Сейчас на форуме

© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru

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

ООО «Планета Эксел»
ИНН 7735603520
ОГРН 1147746834949
ИП Павлов Николай Владимирович
ИНН 633015842586
ОГРНИП 310633031600071

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

Появилась примитивное задание: необходимо посчитать в linux количество файлов в папке. Существует различные вариации, и сейчас в своей статье «Подсчитать количество файлов в папке на Unix/Linux» я приведу немного из них. Мы уже говорили о многих командах Linux, которые вы можете использовать для того, чтобы делать свою работу с этой системой проще. В сегодняшней статье поговорим о такой багаж, которая становится нужной не очень часто. Сегодня мы рассмотрим как посчитать количество файлов в папке Linux разными способами с помощью разных команд. Ниже приведены лучшие способы поиска и подсчета численности файлов и папок в конкретной директории. Единственное, что у вас есть, это если у вас есть имена файлов или имена каталогов, содержащие символ новой строки, что маловероятно. Если вам действительно нужно беспокоиться о новых символах в именах файлов или именах каталогов, я предлагаю вам их найти и исправить, чтобы они не содержали символы новой строки (и спокойно убеждали виновную сторону в ошибках их способов).

Читайте также: Установка принтера Epson в Linux

Итак, SSH клиент задорно мигнул и представил моему взору голую консоль бзди. Вообще, у нас на работе всеми животными (linux’ами) и адскими созданиями (freebsd) рулит Lord_of_fear. Я знал, что lord непременно знает ответ на мучивший меня вопрос, но решил попытаться дойти до решения самостоятельно. Сначала я думал, что мою скромную потребность может удовлетворить команда ls. Тыкал и так и сяк, но, то, что мне, было, нужно не нашел. Почему я подумал на ls? Да потому что с помощью ls выдает список файлов и папок запрашиваемого каталога в разных представлениях. Мне как человеку с отсутствием должного опыта показалось логично, что операция как подсчет файлов полюбас должна быть организована. Увы, я ошибся. Ну, ничего, стал ковырять дальше.

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

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

Читайте также: Работа с архивами в 7zip из консоли Linux

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. Они покажут сколько файлов находится в текущей папке:

Читайте также: Добавить всем право на чтение и запись в Linux

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

Эта команда активирует опцию -a, таким образом . , .. и другие компданные начинающиеся с . , также будут подсчитаны.
Используя команду «find»:

$ find . -type f -maxdepth 1 | wc -l

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

Следующая команда рекурсивно считает количество файлов в нынешной директории и всех ее поддиректориях:

$ find . -type f | wc -l

Рекурсивно подсчитать количество папок в Linux

Последующая команда рекурсивно считает количество папок в текущей директории и всех ее поддиректориях:

$ find . -type d | wc -l

Подсчитать количество файлов «определенного типа» в Linux

Следующая команда рекурсивно считает число файлов с расширением «.txt» в текущей директории и всех ее поддиректориях:

$ find . -type f -name «*.txt» | wc -l

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

Как посчитать количество объектов (файлов и папок) в папке?

Имееется ввиду использование класса Path() , но не обязательно.
Вот такое решение мне кажется громоздким. Нет ли чего-то изящнее?
Задача решалась 100500 раз, видно плохо гуглил.

from pathlib import Path folder_name = input("folder name:") folder = Path(folder_name) if folder.is_dir(): folder_count = len([1 for file in folder.iterdir()]) print(f"В папке есть объектов") 

Отслеживать

51.6k 200 200 золотых знаков 61 61 серебряный знак 243 243 бронзовых знака

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

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

помогите кто может?

Лучшие ответы ( 3 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

В указанном каталоге и его подкаталогах найти наибольшего размера файл с указанным расширением
Помогите пожалуйста написать задание из лабораторной работы по ОС 1. В каталоге, указанном.

В заданном каталоге посчитать количество файлов с расширениями .txt, .html, .doc
Написать bat-файл: В заданном каталоге ( передается как параметр ) посчитать количество файлов з.

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

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

Эксперт С++

3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2

помогу. покажи что написал?

Эксперт С++

7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
Для начала просто распечатай список всех файлов и директорий из каталога.
Регистрация: 03.01.2010
Сообщений: 9

ЦитатаСообщение от niXman Посмотреть сообщение

помогу. покажи что написал?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
#include #include #include int sel (struct dirent *d) { int b=strlen(d->d_name); if ((d->d_name[b-1]=='с')&&(d->d_name[b-2]=='.')) return 1; else return 0; } int main(int argc, char ** argv) { int i, n; struct dirent ** entry; n=scandir(argv[1], &entry, sel, alphasort); printf("Kolichestvo naidenih failov=%i\n", n); if(n0) { printf("Oshibka chtenia direktorii\n"); return 1; } for(i=0;in;i++) printf("%s inode=%i\n", entry[i]->d_name, entry[i]->d_ino); return 0; }

вот такое написал, программа ищет все файлы с расширением «с» в указанной директории,
проблема в том что не знаю как переделать чтобы искало файлы, если длина расширения больше чем 1 символ и не получается указать расширение через argv[2]

Эксперт С++

3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2

Лучший ответ

Сообщение было отмечено Памирыч как решение

Решение

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
#include #include #include char* ext = NULL; int sel (struct dirent *d) { int plen, extlen; char* p = strrchr(d->d_name, '.'); if ( !p ) return 0; plen = strlen(p); extlen = strlen(ext); return strncmp(ext, p, (extlen  plen) ? extlen : plen) == 0; } int main(int argc, char ** argv) { int i, n; struct dirent ** entry; ext = argv[2]; // <<<<<<=scandir(argv[1], &entry, sel, alphasort); printf("Kolichestvo naidenih failov=%i\n", n); if(n0) { printf("Oshibka chtenia direktorii\n"); return 1; } for(i=0;in;i++) printf("%s inode=%i\n", entry[i]->d_name, entry[i]->d_ino); return 0; }

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

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