Количество файлов систем 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, который отображает скрытые файлы, исключая. и .. каталоги.

Читайте также:  Linux users last login

Это даст вам правильное количество файлов и каталогов в текущем каталоге. Посмотрите на вывод, который показывает количество 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 logitech keyboard drivers

Мы надеемся, что этот учебник по Linux помог вам узнать несколько вещей. Оставайтесь на связи, чтобы узнать больше советов по Linux.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Как подсчитать файлы в каталоге в 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?

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

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

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

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

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

Читайте также:  Firefox для kali 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, который является инструментом с графическим интерфейсом, который также помогает найти количество файлов.

Источник

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