Uso avanzado del comando du
En este último paso, aprenderás algunas técnicas avanzadas utilizando el comando du
para ordenar directorios por tamaño, excluir ciertos archivos y centrarte en archivos grandes.
Ordenar directorios por tamaño
Una tarea común es encontrar los directorios o archivos más grandes. Puedes combinar du
con sort
para lograr esto:
du -h ~/project/data | sort -h
La opción -h
para sort
hace que entienda y ordene correctamente los tamaños legibles por humanos. La salida se ordenará de menor a mayor.
Para ordenar de mayor a menor, agrega la opción -r
(inversa) a sort
:
du -h ~/project/data | sort -hr
Ejemplo de salida:
3.9M /home/labex/project/data
2.0M /home/labex/project/data/backups
804K /home/labex/project/data/images
8.0K /home/labex/project/data/docs
4.0K /home/labex/project/data/docs/doc2.txt
4.0K /home/labex/project/data/docs/doc1.txt
Encontrar tipos de archivos específicos
Puedes usar el comando find
en combinación con du
para calcular el tamaño de tipos de archivos específicos:
## Find all jpg files and check their sizes
find ~/project/data -name "*.jpg" -exec du -h {} \;
Este comando encuentra todos los archivos con la extensión .jpg
en el directorio ~/project/data
y ejecuta du -h
en cada uno de ellos.
Excluir directorios
A veces, quieres excluir ciertos directorios del cálculo del uso del disco. Puedes usar la opción --exclude
:
du -h --exclude="backups" ~/project/data
Esto calculará el uso del disco de todo en ~/project/data
excepto el directorio backups
.
Obtener el uso total del disco
Para obtener solo el total general (resumen) de un directorio y todos sus subdirectorios:
du -sh ~/project/data
Ejemplo de salida:
3.9M /home/labex/project/data
Esto es especialmente útil cuando solo estás interesado en el tamaño total de un árbol de directorios en lugar de su desglose.
Verificar el uso del disco por antigüedad de los archivos
Creemos algunos archivos con diferentes marcas de tiempo para demostrar esto:
## Create a directory for this example
mkdir -p ~/project/data/timeline
cd ~/project/data/timeline
## Create files with different timestamps
echo "Old file" > old_file.txt
echo "Recent file" > recent_file.txt
touch -d "1 month ago" old_file.txt
Ahora puedes usar find
con du
para verificar los archivos modificados dentro de un cierto período de tiempo:
## Find files modified in the last 7 days and check their sizes
find ~/project/data -type f -mtime -7 -exec du -h {} \;
Esto mostrará los tamaños de todos los archivos que se modificaron en los últimos 7 días.
Estas técnicas avanzadas te ayudarán a administrar eficazmente el espacio en disco en sistemas Linux al identificar dónde se está utilizando el espacio y encontrar oportunidades para liberar almacenamiento.