Cómo ver el espacio libre en disco y el uso del disco desde la terminal de Linux
- Dave McKay
- April 2, 2019, 8:00am EDT
Los comandos df
y du
informan sobre el uso del espacio en disco desde el shell Bash utilizado en Linux, macOS y muchos otros sistemas operativos tipo Unix. Estos comandos le permiten identificar fácilmente lo que está utilizando el almacenamiento de su sistema.
Ver el espacio de disco total, disponible y utilizado
Bash contiene dos comandos útiles relacionados con el espacio de disco. Para averiguar el espacio de disco disponible y utilizado, utilice df
(sistemas de archivos de disco, a veces llamado disco libre). Para descubrir qué está ocupando el espacio de disco utilizado, utiliza du
(uso del disco).
Escribe df
y pulsa enter en una ventana de terminal Bash para empezar. Verás un montón de salidas similares a la captura de pantalla de abajo. Si utilizas df
sin ninguna opción, se mostrará el espacio disponible y utilizado para todos los sistemas de archivos montados. A primera vista, puede parecer impenetrable, pero es bastante fácil de entender.
df
Cada línea de la pantalla está formada por seis columnas.
- Fileystem: El nombre de este sistema de archivos.
- 1K-Blocks: El número de bloques de 1K que están disponibles en este sistema de archivos.
- Usado: El número de bloques de 1K que se han utilizado en este sistema de archivos.
- Disponible: El número de bloques de 1K que están sin usar en este sistema de archivos.
- Uso%: La cantidad de espacio utilizado en este sistema de archivos dada como porcentaje.
- Fichero: El nombre del sistema de archivos, si se especifica en la línea de comandos.
- Montado en: El punto de montaje del sistema de archivos.
Puede sustituir los recuentos de bloques de 1K por una salida más útil utilizando la opción -B
(tamaño de bloque). Para usar esta opción, escribe df,
un espacio, y luego -B
y una letra de la lista de K, M, G, T, P, E, Z o Y. Estas letras representan los valores de kilo, mega, giga, tera, peta, exa, zeta y yotta de la escala de múltiplos de 1024.
Por ejemplo, para ver las cifras de uso del disco en megabytes, utilizarías el siguiente comando. Observe que no hay espacio entre la B y la M.
df -BM
La opción -h
(legible para el ser humano) indica a df
que utilice la unidad más aplicable para el tamaño de cada sistema de archivos. En la siguiente salida observe que hay sistemas de archivos con tamaños de gigabytes, megabytes e incluso kilobytes.
df -h
Si necesita ver la información representada en números de inodos, utilice la opción -i
(inodos). Un inodo es una estructura de datos utilizada por los sistemas de archivos de Linux para describir archivos y almacenar metadatos sobre ellos. En Linux, los inodos contienen datos como el nombre, la fecha de modificación, la posición en el disco duro, etc. de cada archivo y directorio. Esto no va a ser útil para la mayoría de la gente, pero los administradores del sistema a veces deben referirse a este tipo de información.
df -i
A menos que se le diga que no, df
proporcionará información sobre todos los sistemas de archivos montados. Esto puede llevar a una pantalla desordenada con mucha salida. Por ejemplo, las entradas /dev/loop
en las listas son pseudo sistemas de archivos que permiten montar un archivo como si fuera una partición. Si utiliza el nuevo método de Ubuntu snap
para instalar aplicaciones, puede adquirir muchos de ellos. El espacio disponible en estos siempre será 0 porque no son realmente un sistema de archivos, así que no necesitamos verlos.
Podemos decirle a df
que excluya los sistemas de archivos de un tipo específico. Para ello, necesitamos saber qué tipo de sistema de archivos queremos excluir. La opción -T
(print-type) nos dará esa información. Indica a df
que incluya el tipo de sistema de archivos en la salida.
df -T
Las entradas /dev/loop
son todas squashfs
sistemas de archivos. Podemos excluirlos con el siguiente comando:
df -x squashfs
Eso nos da una salida más manejable. Para obtener un total, podemos añadir la opción --total
.
df -x squashfs --total
Podemos pedirle a df
que sólo incluya sistemas de archivos de un tipo concreto, utilizando la opción -t
(tipo).
df -t ext4
Si queremos ver los tamaños de un conjunto de sistemas de archivos, podemos especificarlos por su nombre. Los nombres de las unidades en Linux son alfabéticos. La primera unidad se llama /dev/sda
, la segunda unidad es /dev/sdb
, y así sucesivamente. Las particiones están numeradas. Así, /dev/sda1
es la primera partición de la unidad /dev/sda
. Le decimos a df
que devuelva información sobre un sistema de archivos concreto pasando el nombre del sistema de archivos como parámetro del comando. Veamos la primera partición del primer disco duro.
df /dev/sda1
Nota que puedes usar comodines en el nombre del sistema de archivos, donde *
representa cualquier conjunto de caracteres y ?
representa cualquier carácter único. Así que para mirar todas las particiones de la primera unidad, podríamos usar:
df /dev/sda*
Podemos pedir a df
que nos informe sobre un conjunto de sistemas de archivos con nombre. He estamos solicitando los tamaños de los /dev
y /run
filesystems, y nos gustaría un total.
df -h --total /dev /run
Para personalizar aún más la visualización, podemos decirle a df
qué columnas incluir. Para ello utiliza la opción --output
y proporciona una lista separada por comas con los nombres de las columnas necesarias. Asegúrese de no incluir ningún espacio en la lista separada por comas.
- Fuente: El nombre del sistema de archivos.
- fstype: El tipo del sistema de archivos.
- itotal: El tamaño del sistema de archivos en inodos.
- iused: El espacio utilizado en el sistema de archivos en inodos.
- iavail: El espacio disponible en el sistema de archivos en inodos.
- ipcent: El porcentaje de espacio utilizado en el sistema de archivos en inodos, en porcentaje.
- Tamaño: El tamaño del sistema de archivos, por defecto en bloques de 1K.
- Usado: El espacio utilizado en el sistema de archivos, por defecto en bloques de 1K.
- disponible: El espacio disponible en el sistema de archivos, por defecto en bloques de 1K.
- pcent: El porcentaje de espacio utilizado en el sistema de archivos en inodos, por defecto en bloques de 1K.
- Fichero: El nombre del sistema de archivos si se especifica en la línea de comandos.
- Destino: El punto de montaje para el sistema de archivos.
Pidamos a df
que informe sobre la primera partición de la primera unidad, con números legibles para humanos, y con las columnas source, fstype, size, used, avail, y pcent:
df -h /dev/sda1 --output=source,fstype,size,used,avail,pcent
Los comandos largos son candidatos perfectos para ser convertidos en un alias. Podemos crear un alias dfc
(para df custom
) escribiendo lo siguiente y pulsando Enter:
alias dfc="df -h /dev/sda1 --output=source,fstype,size,used,avail,pcent"
Escribir dfc
y pulsar Enter tendrá el mismo efecto que escribir el comando largo. Para que este alias sea permanente añádelo a tu .
o bashrc
.bash_aliases
file.
Hemos estado buscando formas de refinar la salida de df
para que la información que muestre se ajuste a tus necesidades. Si quieres adoptar el enfoque opuesto y que df
devuelva toda la información que pueda usar la opción -a
(all) y la opción --output
como se muestra a continuación. La opción -a
(all) pide a df
que incluya todos los sistemas de archivos, y el uso de la opción --output
sin una lista de columnas separada por comas hace que df
incluya todas las columnas.
df -a --output
Pasar la salida de df
por el comando less
es una forma conveniente de revisar la gran cantidad de salida que esto puede producir.
df -a --output | less
Averiguar qué está ocupando el espacio de disco utilizado
Hagamos una investigación y averigüemos qué está ocupando espacio en este PC. Empezaremos con uno de nuestros comandos df
.
df -h -t ext4
Hay un 78% de espacio en disco utilizado en la primera partición del primer disco duro. Podemos utilizar el comando du
para mostrar qué carpetas contienen más datos. Al emitir el comando du
sin opciones se mostrará una lista de todos los directorios y subdirectorios por debajo del directorio en el que se emitió el comando du
. Si haces esto desde tu carpeta de inicio el listado será muy largo.
du
El formato de salida es muy simple. Cada línea muestra el tamaño y el nombre de un directorio. Por defecto, el tamaño se muestra en bloques de 1K. Para forzar que du
utilice un tamaño de bloque diferente, utilice la opción -B
(tamaño de bloque). Para utilizar esta opción, escriba du
, un espacio y, a continuación, -B
y una letra de la lista de K, M, G, T, P, E, Z e Y, como hicimos anteriormente para df
. Para usar bloques de 1M, usa este comando:
du -BM
Al igual que df
du
tiene una opción legible para el ser humano, -h
, que usa un rango de tamaños de bloque según el tamaño de cada directorio.
du -h
La opción -s
(resumir) da un total para cada directorio sin mostrar los subdirectorios dentro de cada directorio. El siguiente comando pide a du
que devuelva la información en formato de resumen, en números legibles para el ser humano, para todos los directorios (*) por debajo del directorio de trabajo actual.
du -h -s *
La carpeta Picture es la que más datos contiene con diferencia. Podemos pedirle a du
que ordene las carpetas en tamaño de mayor a menor.
du -sm Pictures/* | sort -nr
Al refinar la información devuelta por df
y du
es fácil averiguar cuánto espacio del disco duro está en uso, y descubrir qué está ocupando ese espacio. Entonces podrá tomar una decisión informada sobre el traslado de algunos datos a otro almacenamiento, la adición de otro disco duro a su ordenador o la eliminación de datos redundantes.
Estos comandos tienen muchas opciones. Aquí describimos las opciones más útiles, pero puede ver una lista completa de las opciones para el comando df y para el comando du en las páginas man de Linux.
Dave McKay utilizó por primera vez los ordenadores cuando la cinta de papel perforada estaba de moda, y ha estado programando desde entonces. Tras más de 30 años en el sector de la informática, ahora es un periodista tecnológico a tiempo completo. A lo largo de su carrera, ha trabajado como programador independiente, director de un equipo internacional de desarrollo de software, gestor de proyectos de servicios informáticos y, más recientemente, como responsable de protección de datos. Dave es un evangelista de Linux y defensor del código abierto.Leer Biografía Completa «