![¿Cómo medir (de forma no recursiva) los tamaños de todas las carpetas (tanto ocultas como no ocultas) en un directorio?](https://rvso.com/image/178466/%C2%BFC%C3%B3mo%20medir%20(de%20forma%20no%20recursiva)%20los%20tama%C3%B1os%20de%20todas%20las%20carpetas%20(tanto%20ocultas%20como%20no%20ocultas)%20en%20un%20directorio%3F.png)
Tengo un directorio principal somedir
que contiene dos directorios secundarios .hiddenDir
y notHidden
.
Quiero medir de forma no recursiva los tamaños detododirectorios secundarios en somedir
.
¿Cómo puedo hacer esto en Unix?
imagen de lo que quiero:
intento fallido:
El siguiente du
comando basado solo devuelve los directorios visibles:
du -sh *
Mientras
du -sh .*
sólo devuelve los directorios ocultos.
¿Cómo puedo devolver las tallas detodo¿Los directorios como en la imagen?
Respuesta1
Con GNU du
:
du -hd1
(También informa el uso del disco, .
que será la suma de los usos del disco informados para los subdirectorios y el de los archivos que no son de directorio en el directorio actual).
Con zsh
y cualquiera du
:
du -sk -- *(/D)
(en kibibytes).
En cualquier caso, si bien eso no informa el uso del disco de los directorios en profundidad 2
o por debajo y su contenido, el uso del disco de aquellos todavía se incluye en el uso del disco informado por para los directorios de nivel superior (en otras palabras, hayesrecursión).
Ése es uno de los posibles significados de latamañode un directorio. En otras palabras, ese es el espacio en disco que se recuperaría si ese directorio y su contenido se eliminaran (suponiendo que los archivos no tengan enlaces físicos fuera de esos directorios y que no se haga referencia a sus datos (posiblemente en parte) en otros archivos externos). esos directorios), tenga en cuenta que generalmente es diferente de la suma del tamaño aparente de los archivos en sí (incluidos los archivos de directorio) según lo informado por ls -l
.
Respuesta2
Du toma múltiples argumentos; de hecho, su shell expande los * antes de entregárselos a du. Entonces esto es todo lo que necesitas hacer.
du -sh * .??*
Advertencia: esto omitirá archivos o directorios nombrados con .
un solo carácter, por ejemplo, un directorio llamado .a
.
.??*
se utiliza para omitir .
y ..
, que son enlaces a los directorios actual y principal.