“Conocimiento Sistemas>unix

¿Qué traversal calcula el tamaño total de cada directorio en el sistema UNIX?

2011/5/8
Ninguno de los métodos de recorrido UNIX estándar (como `Find`,` LS` o 'Tree') calcule directamente el tamaño total de cada directorio en un solo comando. Por lo general, muestran el tamaño de los archivos dentro de un directorio, pero no la suma recursiva de los tamaños de todos los archivos y subdirectorios dentro de ese directorio.

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.

unix
¿Qué ofrecen Unix y Linux esa ventana?
¿Cuál es la sintaxis genérica para todo el comando UNIX?
¿Cómo se elimina un archivo del directorio que no sea el actual en UNIX?
Cómo eliminar los archivos en Unix
¿Cómo se cambia de usuario en Unix?
¿Cuáles son las aplicaciones de Unix?
¿Cuál es la diferencia entre UNIX y UNIX?
¿Cuáles son los dos tipos de tuberías en los soportes del sistema operativo UNIX?
Conocimiento de la computadora © http://www.ordenador.online