Linux bash количество файлов

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

Читайте также:  Set permissions all files in directory linux

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

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

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

Источник

Подсчет количества файлов в каталоге в 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

Вы также можете использовать эту команду для достижения того же результата:

Читайте также:  How to know kernel version on linux

Обратите внимание, что используется опция 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.

Источник

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