Вы когда-нибудь ломали голову над тем, как подсчитать количество файлов в каталоге и подкаталогах в Linux?
В этой краткой статье мы рассмотрим, как вы можете сделать это простым, но точным способом.
1) Использование команды wc
Команда WC, сокращенно от Word Count, – это инструмент командной строки в системах Unix / Linux, используемый для вывода новых строк, подсчета количества строк и символов в файле.
Команду также можно комбинировать с другими операциями по трубопроводам для общих функций счета.
Чтобы подсчитать количество файлов в каталоге, используйте синтаксис ниже
# ls -1 | wc -l
ls: список файлов
-1: это ОДИН. Он выводит одну запись в строке. Чтобы вывести скрытые файлы, измените его на -1a
| : Вывод труб в …
wc: Wordcount
-l: считает строки
Чтобы подсчитать количество файлов за пределами каталога, вы можете указать имя каталога, как показано ниже:
# ls directory_name | wc -l
Чтобы продемонстрировать, как работают эти команды, давайте создадим новую директорию test_folder и перейдем в нее.
# mkdir test_folder && cd test_folder
Далее мы создадим несколько текстовых файлов для демонстрационных целей.
# touch file1.txt file2.txt file3.txt file4.txt file5.txt
Давайте подтвердим существование файлов, перечислив их с помощью команды ls
# ls -l
Вывод:
Отлично, теперь давайте посчитаем файлы
# ls -1 | wc -l
Точно так же вы можете выйти из каталога с помощью команды cd
# cd ..
Точно так же вы можете выйти из каталога с помощью команды cd
# cd ..
и запустите
# ls test_folder | wc -l
2) Использование команды tree
tree – это инструмент командной строки Unix / Linux, который рекурсивно печатает каталоги в древовидном формате.
Он отображает каждый каталог вместе со всеми его подкаталогами. Кроме того, он также может отображать и распечатывать количество файлов в каталоге.
Перейдите в наш пример test_folder
cd test_folder
Затем выполните команду
tree
Вывод
Как вы можете видеть, мы перечислили имена файлов, а также счетчик внизу.
Очевидно, что благодаря наблюдению, количество соответствует точно числу файлов, созданных ранее.
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) подсчитывает количество строк, слов и байтов на входе
-l считает новые строки
Если вы считаете файлы в текущем каталоге, замените DIR_NAME точкой, как показано
# find . -type f | wc -l
Чтобы включить другие подпапки и файлы в подпапки, не используйте флаг – type f.
find . | wc -l
Я надеюсь, что эта статья была полезна и что теперь вы можете с удобством подсчитать количество файлов в каталогах и подкаталогах.
Кроме того, попробуйте инструмент ncdu, который является инструментом с графическим интерфейсом, который также помогает найти количество файлов.