- Подсчет количества файлов в каталоге в Linux
- Подсчитать количество файлов в каталоге в Linux
- Подсчитать количество файлов и каталогов (без скрытых файлов)
- Подсчитать количество файлов и каталогов, включая скрытые файлы
- Подсчитать количество файлов и каталогов, включая подкаталоги
- Считайте только файлы, а не каталоги
- Подсчитывать только файлы, а не каталоги и только в текущем каталоге, а не в подкаталогах
- Как посчитать количество файлов в каталоге в Linux
- 1) Использование команды wc
- 2) Использование команды tree
- 3) Rsync команда
- 4) Рекурсивный подсчет файлов по каталогам и подкаталогам
- Подсчитать количество файлов в папке на Unix/Linux
- Подсчитать количество файлов в папке на Unix/Linux с помощью команды find.
- Подсчитать количество файлов в папке на Unix/Linux с помощью команды ls.
- 5 thoughts on “ Подсчитать количество файлов в папке на Unix/Linux ”
Подсчет количества файлов в каталоге в Linux
Добавить в избранное
Главное меню » Операционная система Linux » Подсчет количества файлов в каталоге в Linux
К раткое описание: Вот несколько способов подсчитать количество файлов в каталоге в командной строке Linux.
Мы предполагаем, что вы знаете о команде wc для подсчета количества строк. Мы можем использовать ту же команду wc с командой ls для подсчета количества файлов в каталоге.
Эта задача кажется простой, но вскоре может стать немного сложной, в зависимости от ваших потребностей и определения количества файлов. Прежде чем мы вас запутаем, давайте рассмотрим различные варианты подсчета количества файлов в Linux.
Подсчитать количество файлов в каталоге в Linux
Позвольте нам сначала показать вам содержимое тестового каталога, который я собираюсь использовать в этой статье:
destroyer@andreyex:~/tutorials$ ls -la total 64 drwxr-xr-x 4 destroyer destroyer 4096 Apr 29 17:53 . drwxr-xr-x 55 destroyer destroyer 4096 Apr 29 15:50 .. -rwxr–r– 1 destroyer destroyer 456 Mar 6 16:21 agatha.txt -rw-r–r– 1 destroyer destroyer 0 Apr 16 19:53 .a.t -rwxr–r– 1 destroyer destroyer 140 Mar 22 16:41 bash_script.sh -rw-rw-r– 1 destroyer destroyer 95 Feb 11 13:12 cpluplus.cpp -rw-r–r– 1 destroyer destroyer 1778 Apr 29 16:16 my_zip_folder.zip drwxr-xr-x 4 destroyer destroyer 4096 Apr 19 19:07 newdir -rw-r–r– 1 destroyer destroyer 163 Apr 13 15:07 prog.py -rw-r–r– 1 destroyer destroyer 19183 Mar 18 18:46 services -rw-r–r– 1 destroyer destroyer 356 Dec 11 21:35 sherlock.txt -rwxrw-r– 1 destroyer destroyer 72 Jan 21 15:44 sleep.sh drwxr-xr-x 3 destroyer destroyer 4096 Jan 4 20:10 target
Вы можете видеть, что у него есть 9 файлов (включая один скрытый файл) и 2 подкаталога в этом каталоге. Но вам не нужно делать это вручную. Давайте посчитаем количество файлов с помощью команд Linux.
Подсчитать количество файлов и каталогов (без скрытых файлов)
Вы можете просто запустить комбинацию команды ls и wc, и она отобразит количество файлов:
destroyer@andreyex:~/tutorials$ ls | wc -l 10
Есть проблема с этой командой. Он считает все файлы и каталоги в текущих каталогах. Но он не видит скрытые файлы (файлы, имена которых начинаются с точки).
По этой причине приведенная выше команда показала мне количество файлов 10 вместо 11 (9 файлов и 2 каталога).
Подсчитать количество файлов и каталогов, включая скрытые файлы
Вы, наверное, уже знаете, что опция -s команды ls показывает скрытые файлы. Но если вы используете команду ls -a, она также отображает. (существующий каталог) и .. (родительский каталог). Вот почему вам нужно использовать параметр -A, который отображает скрытые файлы, исключая. и .. каталоги.
Это даст вам правильное количество файлов и каталогов в текущем каталоге. Посмотрите на вывод, который показывает количество 11 (9 файлов и 2 каталога):
destroyer@andreyex:~/tutorials$ ls -A | wc -l 11
Вы также можете использовать эту команду для достижения того же результата:
Обратите внимание, что используется опция 1 (один), а не l (L). Использование опции l (L) отображает дополнительную строку в начале вывода (см. «Всего 64» в выводе каталога в начале статьи). Использование 1 (одного) списка по одному контенту в строке, исключая дополнительную строку. Это дает более точный результат.
Подсчитать количество файлов и каталогов, включая подкаталоги
Пока что вы видите количество файлов и каталогов только в текущем каталоге. Он не учитывает файлы в подкаталогах.
Если вы хотите подсчитать количество файлов и каталогов во всех подкаталогах, вы можете использовать команду дерева.
Эта команда показывает структуру каталогов, а затем выводит сводку внизу вывода.
destroyer@andreyex:~/tutorials$ tree -a . ├── agatha.txt ├── .a.t ├── bash_script.sh ├── cpluplus.cpp ├── my_zip_folder.zip ├── newdir │ ├── new_dir │ │ ├── c.xyz │ │ ├── myzip1.zip │ │ └── myzip2.zip │ └── test_dir │ ├── c.xyz │ ├── myzip1.zip │ └── myzip2.zip ├── prog.py ├── services ├── sherlock.txt ├── sleep.sh └── target ├── agatha.txt ├── file1.txt └── past ├── file1.txt ├── file2.txt └── source1 └── source2 └── file1.txt 7 directories, 19 files
Как вы можете видеть в выводе, это показывает, что всего имеется 7 каталогов и 20 файлов. Хорошая вещь об этом результате — то, что он не считает каталоги в количестве файлов.
Считайте только файлы, а не каталоги
Пока что все решения, которые мы видели для подсчета количества файлов, также учитывают каталоги. Каталоги — это, по сути, файлы, но что если вы хотите считать только количество файлов, а не каталоги? Вы можете использовать замечательную команду поиска .
Вы можете запустить эту команду:
Приведенная выше команда провела поиск всех файлов (тип f) в текущем каталоге и его подкаталогах.
destroyer@andreyex:~/tutorials$ find . -type f | wc -l 20
Подсчитывать только файлы, а не каталоги и только в текущем каталоге, а не в подкаталогах
Это круто! Но что если вы хотите посчитать количество файлов в текущем каталоге, исключая только файлы в подкаталогах? Вы можете использовать ту же команду, что и выше, но с небольшой разницей.
Все, что вам нужно сделать, это добавить «глубину» вашей находки. Если вы установите его на 1, он не будет входить в подкаталоги.
find . -maxdepth 1 -type f | wc -l
destroyer@andreyex:~/tutorials$ find . -maxdepth 1 -type f | wc -l 9
В Linux у вас может быть несколько способов достичь одной и той же цели. Мы уверены, что в Linux может быть несколько других способов подсчета количества файлов. Если вы используете какую-то другую команду, почему бы не поделиться ею с нами?
Мы надеемся, что этот учебник по Linux помог вам узнать несколько вещей. Оставайтесь на связи, чтобы узнать больше советов по Linux.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как посчитать количество файлов в каталоге в 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» сначала — то поиск быстрей будет 😉