Чтобы подсчитать количество файлов в каталоге с помощью оболочки 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.