Как посчитать количество файлов в каталоге с помощью Bash

Чтобы подсчитать количество файлов в каталоге с помощью оболочки Bash, существует несколько методов. Вот несколько примеров:

Метод 1: использование команды lsи подсчет строк

ls -l | grep "^-" | wc -l

Объяснение:

  • Команда ls -lвыводит список всех файлов и каталогов в текущем каталоге в длинном формате.
  • Команда grep "^-"отфильтровывает только строки, начинающиеся с дефиса, обозначающего обычные файлы.
  • Команда wc -lподсчитывает количество строк.

Способ 2: использование команды найти

find . -maxdepth 1 -type f | wc -l

Объяснение:

  • Команда find.ищет файлы и каталоги в текущем каталоге.
  • Опция -maxlength 1гарантирует, что учитываются только файлы и каталоги в текущем каталоге, а не подкаталоги.
  • Опция -type fотфильтровывает только файлы.
  • Команда wc -lподсчитывает количество строк.

Метод 3. Использование цикла

count=0
for file in *; do
  if [ -f "$file" ]; then
    count=$((count + 1))
  fi
done
echo $count

Объяснение:

  • Цикл перебирает каждую запись в текущем каталоге.
  • if [ -f "$file"]; затемусловие проверяет, является ли запись обычным файлом.
  • Если это файл, переменная countувеличивается.
  • Наконец, выводится значение count.