Как узнать, сколько файлов в каталоге?
В этой краткой статье вы научитесь различным способам подсчета количества файлов в каталоге в Linux.
Самый простой и очевидный вариант — использовать команду wc для подсчета количества файлов.
ls | wc -l
Приведенная выше команда будет считать все файлы и каталоги, но не скрытые. Вы можете использовать опцию -A с командой ls для вывода списка скрытых файлов, но исключая. и .. каталоги:
ls -A | wc -l
Если вы хотите подсчитать только количество файлов, включая скрытые файлы, в текущем каталоге, вы можете объединить несколько команд следующим образом:
ls -Ap | grep -v /$ | wc -l
Позвольте вам объяснить, что он делает:
В основном, вы используете ls для отображения списка всех файлов и каталогов (с добавлением / к именам каталогов). Затем вы используете перенаправление канала для синтаксического анализа этого вывода в команде grep. Команда grep отображает только те строки, которые не имеют / в конце. Затем команда wc считает все такие строки.
Вы можете использовать команду tree для отображения количества файлов в текущем каталоге и во всех его подкаталогах.
tree -a
Как видите, последняя строка вывода показывает количество каталогов и файлов, включая скрытые благодаря опции -a.
Если вы хотите получить количество файлов только в текущем каталоге, исключив подкаталоги, вы можете установить уровень 1 следующим образом:
tree -a -L 1
Команда find весьма полезна при работе с файлами.
Если вы хотите подсчитать количество файлов в каталоге, используйте команду find, чтобы сначала получить все файлы, а затем подсчитайте их с помощью команды wc.
find directory_path -type f | wc -l
С помощью -type f вы указываете команде find искать только файлы.
Если вам не нужны файлы из подкаталогов, ограничьте область действия команды find уровнем 1, то есть текущим каталогом.
find . -maxdepth 1 -type f | wc -l
Могут быть другие способы подсчета количества строк в каталоге в Linux. Как вы хотите поступить, решать только вам.
Мы надеемся, вы найдете это полезным. Не стесняйтесь оставлять вопрос или предложение в разделе комментариев.