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

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

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

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

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

Самый простой способ подсчитать файлы в каталоге — перечислить по одному файлу в строке с помощью ls и направить вывод в wc для подсчета строк:

Приведенная выше команда даст вам сумму всех файлов, включая каталоги и символические ссылки. Параметр -1 означает перечисление одного файла в каждой строке, а -U указывает ls не сортировать вывод, что ускоряет выполнение команды.

ls -1U не считает скрытые файлы (файлы точек).

Если вы хотите подсчитывать только файлы и не включать каталоги, используйте следующее:

ls -1Up DIR_NAME | grep -v / | wc -l

Параметр -p заставляет ls добавлять в каталоги индикатор косой черты ( / ). Вывод передается команде grep -v , исключающей каталоги.

Чтобы лучше контролировать, какие файлы перечислены в списке, используйте команду find вместо ls :

find DIR_NAME -maxdepth 1 -type f | wc -l

Параметр -type -type f указывает find выводить список только файлов (включая файлы точек), а -maxdepth 1 ограничивает поиск каталогом первого уровня.

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

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

find DIR_NAME -type f | wc -l

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

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

15144 directories, 91311 files 

Выводы

Мы показали вам, как подсчитать количество файлов в каталоге с помощью команд ls , find и tree .

Читайте также:  Ldap directory server linux

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

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

Очень быстрый метод для подсчета количества файлов в текущем каталоге Linux.

Так же можно использовать команду find, получается немного длиннее:

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

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

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

Рекурсивный подсчет файлов и в подкаталогах.

Чтобы посчитать количество каталогов, достаточно поменять ключ f на d

find . -type f -name "*.log" | wc -l

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

Последняя команда считает рекурсивно количество файлов с расширением .log

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

Источник

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

Вы когда-нибудь ломали голову над тем, как подсчитать количество файлов в каталоге и подкаталогах в Linux?

В этой краткой статье мы рассмотрим, как вы можете сделать это простым, но точным способом.

1) Использование команды wc

Команда WC, сокращенно от Word Count, – это инструмент командной строки в системах Unix / Linux, используемый для вывода новых строк, подсчета количества строк и символов в файле.

Команду также можно комбинировать с другими операциями по трубопроводам для общих функций счета.

Чтобы подсчитать количество файлов в каталоге, используйте синтаксис ниже

ls: список файлов
-1: это ОДИН. Он выводит одну запись в строке. Чтобы вывести скрытые файлы, измените его на -1a
| : Вывод труб в …
wc: Wordcount
-l: считает строки

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

Чтобы продемонстрировать, как работают эти команды, давайте создадим новую директорию test_folder и перейдем в нее.

# mkdir test_folder && cd test_folder

Далее мы создадим несколько текстовых файлов для демонстрационных целей.

# touch file1.txt file2.txt file3.txt file4.txt file5.txt

Давайте подтвердим существование файлов, перечислив их с помощью команды ls

Отлично, теперь давайте посчитаем файлы

Точно так же вы можете выйти из каталога с помощью команды cd

Точно так же вы можете выйти из каталога с помощью команды cd

2) Использование команды tree

tree – это инструмент командной строки Unix / Linux, который рекурсивно печатает каталоги в древовидном формате.

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

Читайте также:  Linux file by inode

Перейдите в наш пример test_folder

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

Очевидно, что благодаря наблюдению, количество соответствует точно числу файлов, созданных ранее.

3) Rsync команда

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

# rsync --stats --dry-run -ax /etc /test

–dry-run используется не для передачи файлов. / test должен быть любой пустой или несуществующей папкой.

# rsync --stats --dry-run -ax /etc /test Number of files: 1,406 (reg: 622, dir: 187, link: 597) Number of created files: 1,406 (reg: 622, dir: 187, link: 597) Number of deleted files: 0 Number of regular files transferred: 622 Total file size: 2,341,951 bytes Total transferred file size: 2,320,656 bytes Literal data: 0 bytes Matched data: 0 bytes File list size: 0 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 64,184 Total bytes received: 4,429 sent 64,184 bytes received 4,429 bytes 137,226.00 bytes/sec total size is 2,341,951 speedup is 34.13 (DRY RUN)

4) Рекурсивный подсчет файлов по каталогам и подкаталогам

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

# find DIR_NAME -type f | wc -l

DIR_NAME – это имя каталога

– type f указывает только файлы

wc (Word Count) подсчитывает количество строк, слов и байтов на входе

Если вы считаете файлы в текущем каталоге, замените DIR_NAME точкой, как показано

Чтобы включить другие подпапки и файлы в подпапки, не используйте флаг – type f.

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

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

Источник

Подсчитать количество файлов в папке на Unix/Linux

Возникла примитивное задание: необходимо посчитать количество файлов или папок в определенной директории. Существует разные вариации, и сейчас в своей статье «Подсчитать количество файлов в папке на Unix/Linux» я приведу несколько из них.

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

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

# find /home/captain -type f| wc -l

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

# find /home/captain -type d| wc -l

Хочу отметить следующее, что утилита find работает хорошо, но очень нагружает сервер, лучше использовать команду ls.

Читайте также:  Remove user linux from group

Подсчитать количество файлов в папке на Unix/Linux с помощью команды ls.

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

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

$ ls -l /home/captain| grep ^- | wc -l

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

$ ls -l /home/captain| grep ^d | wc -l

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

$ ls –l /home/captain| grep txt| wc -l

Вот и все, я завершаю свою тему «Подсчитать количество файлов в папке на 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» сначала — то поиск быстрей будет 😉

Источник

Оцените статью
Adblock
detector