Para calcular el tamaño total de cada directorio, normalmente usaría `du` (uso de disco). Sin embargo, `du` no" atraviesa "inherentemente en el sentido de visitar cada directorio e imprimir su nombre y tamaño por separado. Reporta el tamaño de cada directorio, *incluyendo sus subdirectorios *, que es sutilmente diferente de un recorrido que enumeraría explícitamente cada directorio y su tamaño independientemente de sus hijos.
Así es como puede lograr un recorrido de directorio que muestra el tamaño total de cada directorio:
usando `du` con` find`:
Esto combina `Find` para el recorrido y` du` para el cálculo del tamaño. `Find` enumera cada directorio, y` xargs` alimenta esos directorios a `du`:
`` `Bash
encontrar . -Tipo d -print0 | xargs -0 -i {} du -sh {}
`` `` ``
* `encontrar. -type d -print0`:Esto encuentra todos los directorios (`-Type D`) a partir del directorio actual (` .`) e imprime sus nombres separados por caracteres nulos (`-Print0`). Los caracteres nulos son cruciales para manejar nombres de archivo con espacios o caracteres especiales.
* `xargs -0 -i {} du -sh {}`:Esto toma los nombres de archivos separados nulo de `find` y ejecuta` du -sh` en cada uno. `-0` le dice a` xargs` que espere una entrada separada nula, `-i {}` establece `{}` como marcador de posición para el nombre de archivo, `du -sh` muestra el tamaño en un formato legible humano (` -h`) y solo el tamaño sumario (no el tamaño de cada archivo adentro) `-S`.
Este es lo más cerca que obtendrá a un recorrido que explícitamente le brinda el tamaño de cada directorio. El comando `du` en sí no es estrictamente un algoritmo de recorrido, pero cuando se usa con` Find`, la combinación realiza la acción deseada.