Сценарий оболочки для перечисления количества записей, присутствующих в каждом подкаталоге, упомянутом в пути
Опубликовано: 29 Сентября, 2022
В этой статье мы обсудим, как написать сценарий оболочки для перечисления количества записей, присутствующих в каждом подкаталоге, упомянутом в пути.
Примеры:
Directory: GeeksforGeeks Subdirectories: GeeksforGeeks/Subdirectory1, GeeksforGeeks/Subdirectory2 Entries in Subdirectory1: gfg.txt, temp.sh Entries in Subdirectory2: foo.txt, script.sh, pro.exe Output: ./ Subdirectory1: 2 ./ Subdirectory2: 3
Скрипт:
# Shell script to count number of entries
# present in subdirectories of a pathp
# !/bin/sh
find . -maxdepth 1 -type d | while read -r dir
do printf “%s: ” “$dir”; find “$dir” -type f | wc -l; done
Выход:
Объяснение:
Каждая из строк этого скрипта подробно описана ниже:
- найти . -maxdepth 1 -type d: Этот оператор возвращает список всех подкаталогов, присутствующих в текущем пути или каталоге.
- при чтении -r каталог; do: Этот оператор инициирует цикл while, пока канал, который поступает в while, открыт.
- printf «%s: » «$dir»: этот оператор напечатает строку в $dir (содержащую одно из имен каталогов), за которой следует двоеточие и табуляция.
- find «$dir» -type f: Составляет список всех записей внутри каталога, который хранится в $dir:
- wc -l: Этот оператор используется для подсчета количества строк, переданных на вход.
- done: этот оператор завершает цикл while.