Сценарий оболочки для перечисления количества записей, присутствующих в каждом подкаталоге, упомянутом в пути

Опубликовано: 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.