用于列出路径中提到的每个子目录中存在的条目数的 Shell 脚本
在本文中,我们将讨论如何编写一个 shell 脚本来列出路径中提到的每个子目录中存在的条目数
例子:
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:\t” “$dir”; find “$dir” -type f | wc -l; done
输出:
解释:
下面详细解释了该脚本的每一行:
- 寻找 。 -maxdepth 1 -type d:此语句返回当前路径或目录中存在的所有子目录的列表。
- 同时读取 -r 目录; do:只要到达 while 的管道是打开的,这个语句就会启动一个 while 循环。
- printf “%s:\t” “$dir”:此语句将打印 $dir 中的字符串(包含目录名称之一),后跟冒号和制表符空格。
- find “$dir” -type f:列出 $dir 保存的目录中的所有条目:
- wc -l:此语句用于计算传递给输入的行数。
- done:此语句将终止 while 循环。