- Как подсчитать файлы в каталоге в Linux
- Подсчитать файлы в каталоге
- Рекурсивный подсчет файлов в каталоге
- Выводы
- Подсчитать количество файлов в каталоге Linux
- Как посчитать количество файлов в каталоге в Linux
- 1) Использование команды wc
- 2) Использование команды tree
- 3) Rsync команда
- 4) Рекурсивный подсчет файлов по каталогам и подкаталогам
- Подсчитать количество файлов в папке на Unix/Linux
- Подсчитать количество файлов в папке на Unix/Linux с помощью команды find.
- Подсчитать количество файлов в папке на Unix/Linux с помощью команды ls.
- 5 thoughts on “ Подсчитать количество файлов в папке на Unix/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 .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Подсчитать количество файлов в каталоге 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, который рекурсивно печатает каталоги в древовидном формате.
Он отображает каждый каталог вместе со всеми его подкаталогами. Кроме того, он также может отображать и распечатывать количество файлов в каталоге.
Перейдите в наш пример 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.
Подсчитать количество файлов в папке на 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» сначала — то поиск быстрей будет 😉