En este artículo, discutiremos cómo escribir un script de shell para listar el número de entradas presentes en cada subdirectorio mencionado en la ruta.
Ejemplos:
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
Guion:
# Shell script para contar el número de entradas
# presente en los subdirectorios de una ruta
#!/bin/sh
encontrar . -máx. profundidad 1 -tipo d | mientras lee -r dir
hacer printf “%s:\t” “$dir”; encuentre “$dir” -escriba f | wc -l; hecho
Producción:
Explicación:
A continuación se explica en detalle cada una de las líneas de este script:
- encontrar . -max depth 1 -type d: esta declaración devuelve una lista de todos los subdirectorios presentes en la ruta o directorio actual.
- mientras lee -r dir; do: Esta instrucción inicia un bucle while siempre que la tubería que llega al while esté abierta.
- printf “%s:\t” “$dir”: esta instrucción imprimirá la string en $dir (que contiene uno de los nombres de directorio) seguida de dos puntos y un tabulador.
- find “$dir” -type f: Hace la lista de todas las entradas que están dentro del directorio que está en manos de $dir:
- wc -l: esta sentencia se utiliza para contar el número de líneas que se pasan a la entrada.
- done: esta declaración terminará el bucle while.