Tutorial PHP | Aprende PHP 8 en 10 capítulos
Hablaremos sobre las diferentes maneras de conocer el tamaño de una carpeta / directorio en GNU/Linux (sin importar la distribución)
1) Comando ls: Conocer el tamaño de una carpeta / directorio.
Ejecutando el comando ls (list) como manera predeterminada nos da a conocer el tamaño de una carpeta / directorio:
1 2 3 4 5 6 7 | [usuario@host directorio]$ ls -lFh total 500M -rw-rw-r-- 1 usuario usuario 100M Oct 21 20:10 archivo-0001.ext -rw-rw-r-- 1 usuario usuario 100M Oct 21 20:10 archivo-0002.ext -rw-rw-r-- 1 usuario usuario 100M Oct 21 20:10 archivo-0003.ext -rw-rw-r-- 1 usuario usuario 100M Oct 21 20:10 archivo-0004.ext -rw-rw-r-- 1 usuario usuario 100M Oct 21 20:10 archivo-0005.ext Publicidad |
En “total” nos muestra el tamaño de la carpeta / directorio, en este ejemplo hay 5 archivos de 100M (100M x 5 = 500M).
Los parámetros utilizados, son los siguientes:
Con esta opción tenemos el inconveniente que para conocer cuanto pesa la carpeta / directorio hay que entrar una por una a ella, listar y obtener el total.
2) Comando du: Conocer el tamaño de una carpeta / directorio.
El comando du nos sirve para conocer el tamaño de una carpeta / directorio, la estructura es con el comando du (disk usage). Conozcamos ejemplos con lo que podemos hacer con él:
A) Ejecutamos: du -h
1 2 3 4 5 | [usuario@host directorio]$ du -h 574M ./sub-directorio1 67M ./sub-directorio2 30M ./sub-directorio3 .671M |
Conocemos el total de la suma del tamaño de la carpeta / directorio y sus sub-carpeta / sub-directorios, en este ejemplo: 671MB.
Los parámetros utilizados, son los siguientes:
B) Ejecutamos: du -sh
1 2 | [usuario@host directorio]$ du -sh .671M |
Agregando el parámetro S logramos que únicamente nos muestre el total, considerando la carpeta / directorio y sus sub-carpeta / sub-directorios, en este ejemplo: 671MB.
Los parámetros utilizados, son los siguientes:
C) Ejecutamos: du -ha
1 2 3 4 5 6 7 8 9 10 11 | [usuario@host directorio]$ du -ha 100M ./sub-directorio1/archivo1.ext 474M ./sub-directorio1/archivo2.ext 574M ./sub-directorio1 32M ./sub-directorio2/archivo1.ext 30M ./sub-directorio2/archivo2.ext 5M ./sub-directorio2/archivo3.ext 67M ./sub-directorio2 30M ./sub-directorio3/archivo1.ext 30M ./sub-directorio3 .671M |
Agregando el parámetro A logramos que nos dé el tamaño de cada carpeta / directorio y sus sub-carpeta / sub-directorios, además de los totales, en este ejemplo: 671MB.
D) Ejecutamos: du -h –max-depth=1
1 2 3 4 5 | [usuario@host directorio]$ du -h --max-depth=1 574M ./sub-directorio1 67M ./sub-directorio2 30M ./sub-directorio3 .671M |
Agregando el parámetro –max-depth, podemos indicar el nivel de profundidad de carpeta / directorio y sus sub-carpeta / sub-directorios que nos gustaría que nos entregue.
Si indicamos –max-depth, a 1, solo nos mostrará un nivel de directorios partiendo del directorio actual.
De todas formas, la suma del total de ficheros ubicados en los subdirectorios, se cuenta de igual forma.
E) Ejecutamos: du -h| sort -h o du -h| sort -h -r
1 2 3 4 5 | [usuario@host directorio]$ du -h| sort -h 30M ./sub-directorio3 67M ./sub-directorio2 574M ./sub-directorio1 .671M |
1 2 3 4 5 | [usuario@host directorio]$ du -h| sort -h -r .671M 574M ./sub-directorio1 67M ./sub-directorio2 30M ./sub-directorio3 |
El comando sort, contiene un parámetro para ordenar el formato de salida du -h (KB, MB, GB, TB, etc) que es utilizando también el parámetro -h. Por defecto, sort -h ordena de menor a mayor, si deseamos lo inverso, deberemos ejecutar: sort -h -r.