1) Comando ls: Saber el tamaño de un directorio
[jant.encinar@castleblack ~]# ls -lFh total 121M -rw-r--r-- 1 root root 24M Aug 25 22:15 SYSADMIT.file01 -rw-r--r-- 1 root root 24M Aug 25 22:16 SYSADMIT.file02 -rw-r--r-- 1 root root 24M Aug 25 22:16 SYSADMIT.file03 -rw-r--r-- 1 root root 24M Aug 25 22:16 SYSADMIT.file04 -rw-r--r-- 1 root root 24M Aug 25 22:16 SYSADMIT.file05
Total 121M
Los parámetros utilizados, son los siguientes:
-l: Formato largo.
-F: Clasificación.
-h: Formato humano (muestra resultados en MB, GB, etc.)
2) Comando du: Saber el tamaño de un directorio
El comando para saber el tamaño de un directorio o bien una estructura de directorios es el comando: du (disk usage).
Veamos algunos ejemplos de su funcionamiento:
A) Ejecutamos: du -h
[jant.encinar@castleblack ~]# du -h 121M ./SUBDIR3 73M ./SUBDIR2 49M ./SUBDIR1/SUB1 169M ./SUBDIR1 361M .
Nos muestra la suma desde el directorio actual y todos sus subdirectorios, en este caso: 361MB
También nos aparece lo que ocupa cada directorio.
Con el parámetro -h, conseguimos que los resultados aparezcan en MB, GB, etc.
B) Ejecutamos: du -sh
[jant.encinar@castleblack ~]# du -sh 361M .
En este ejemplo, utilizando el parámetro -s, conseguimos que sólo nos muestre el total, contando desde el directorio actual y todos los subdirectorios.
C) Ejecutamos: du -ha
[jant.encinar@castleblack ~]# du -ha 25M ./SUBDIR3/SYSADMIT.file05 25M ./SUBDIR3/SYSADMIT.file04 25M ./SUBDIR3/SYSADMIT.file01 25M ./SUBDIR3/SYSADMIT.file03 25M ./SUBDIR3/SYSADMIT.file02 121M ./SUBDIR3 25M ./SUBDIR2/SYSADMIT.file01 25M ./SUBDIR2/SYSADMIT.file03 25M ./SUBDIR2/SYSADMIT.file02 73M ./SUBDIR2 25M ./SUBDIR1/SYSADMIT.file05 25M ./SUBDIR1/SYSADMIT.file04 25M ./SUBDIR1/SUB1/SYSADMIT.file01 25M ./SUBDIR1/SUB1/SYSADMIT.file02 49M ./SUBDIR1/SUB1 25M ./SUBDIR1/SYSADMIT.file01 25M ./SUBDIR1/SYSADMIT.file03 25M ./SUBDIR1/SYSADMIT.file02 169M ./SUBDIR1 361M .
Con el parámetro -a, conseguimos el detalle de tamaño de cada fichero, además de los totales.
D) Ejecutamos: du -h --max-depth=1
[jant.encinar@castleblack ~]# du -h --max-depth=1 121M ./SUBDIR3 73M ./SUBDIR2 169M ./SUBDIR1 361M . [jant.encinar@castleblack ~]# du -h 121M ./SUBDIR3 73M ./SUBDIR2 49M ./SUBDIR1/SUB1 169M ./SUBDIR1 361M .
Con el parámetro, --max-depth, podemos indicar el nivel de profundidad de directorios que queremos que nos muestre. Si indicamos --max-depth, a 1, sólo 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 // du -h| sort -h -r
[jant.encinar@castleblack ~]# du -h| sort -h 49M ./SUBDIR1/SUB1 73M ./SUBDIR2 121M ./SUBDIR3 169M ./SUBDIR1 361M .
[jant.encinar@castleblack ~]# du -h| sort -h -r 361M . 169M ./SUBDIR1 121M ./SUBDIR3 73M ./SUBDIR2 49M ./SUBDIR1/SUB1
El comando sort, dispone de un parámetro para ordenar el formato de salida du -h (MB, GB, etc) que es utilizando también el parámetro -h. Por defecto, sort -h, ordena de menor a mayor, si queremos que ordene de mayor a menor, deberemos ejecutar: sort -h -r.