¿No han deseado alguna vez saber cuál es la carpeta o el archivo más grande que tienen en su disco duro?
El comando find es genial, nos permite hacer muchas cosas (de algunas ya hemos hablado acá), aquí les traigo otra utilidad de él.
El siguiente comando buscará en todo el HDD y nos dirá cuáles son los 10 archivos o carpetas más grandes del ordenador:
sudo find / -printf '%s %p\n'| sort -nr | head -10
Si desean saber no solo los 10 más grandes, sino los 20 o algo así, simplemente cambien el último número 10 por el deseado.
Como dije antes, esto contará tanto carpetas como archivos, si desean solamente tener en cuenta las carpetas sería agregar -type d (d = directorio):
sudo find / -type d -printf '%s %p\n'| sort -nr | head -10
Por el contrario y desean ver solo los archivos y no las carpetas sería -type f (f = file):
sudo find / -type f -printf '%s %p\n'| sort -nr | head -10
Si desean especificar el tipo de archivo, o sea, solo tener en cuenta los .mp4 basta con agregar un -iname «*.mp4» :
sudo find / -iname "*.mp4" -printf '%s %p\n'| sort -nr | head -10
En mi caso los archivos más grandes que tengo son los HDD virtuales de mis servidores virtuales con KVM+Qemu, luego un vídeo de fútbol (presentación de Gareth Bale con el Real Madrid) y otras cosas más.
Justo lo que buscaba para saber donde ocupo mas espacio en mi raíz y así poder liberarla.
Gracias.
Muy buen artículo, muy útil. Muchas gracias… Por cierto, Hala Madrid!! jejeje
me sumo al grupo del madrid por acá
hace algún tiempo instale centos 6.5 minimal y tuve este error y lo solucione editando el /etc/hostname, pues el hostname que había escrito en la configuración de la tarjeta de red no era reconocido por apache
Si hay algo que me gusta de «Desde Linux» es que siempre aparecen estas joyas para la cónsola que hacen nuestras vidas entre ceros y unos más llevaderas. ¡Muchas gracias KZKG^Gaara!
Juraría haber leído en este mismo blog una alternativa, que desde que la descubrí no puedo vivir sin ella:
ncdu
Es un comando interactivo que no viene por defecto (hay que instalarlo desde la paquetería de tu distro) pero es tremendamente útil. Te ordena los ficheros por tamaño, mostrándote una barra o un porcentaje del espacio que ocupan en la partición. Aquí un pantallazo sacado de internet http://www.heitorlessa.com/wp-content/uploads/2013/04/NCDU-1.9-Disk-stats.png
También se puede hacer con el comando du.
Este es para encontrar las carpetas
$ du -Sh | sort -rh | head -n 15
Y este para encontrar los archivos más grandes.
$ find . -type f -exec du -Sh {} + | sort -rh | head -n 15
$ find . -type f -exec du -Sh {} + | sort -rh | head -n 15
Y cuál es la explicación para cada opción?
Muy buen articulo me fue de gran ayuda.
Muchas gracias por compartirlo.
Alguien que me pueda ayudar? necesito un comando que busque dentro de un directorio todos los archivos .txt que sean mayores a 0 bytes y los mueva a otro directorio, hasta el momento solo eh encontrado esto:
find . -type f -size +1b -exec mv /home/oradev/nuevo/*.txt /home/oradev/mover \;
pero mueve todos los archivos sin tomar en cuenta el tamaño de los mismos.
Gracias por el comando!
Lo habia utilizado en otras ocasiones, pero solo en modo «Script kiddie»… por eso de las prisas y tal.
Y aun que find es un comando que uso muy habitualmente (-name, –exec), no habia podido echar un ojo detenidamente a todo el manual.
Ya me habia percatado de la brutal potencia que tiene esta magnifica herramienta… pero ahora la veo con mas detenimiento y mas me admiro de ella.
Aqui la teneis en castellano:
http://es.tldp.org/Paginas-manual/man-pages-es-extra-0.8a/man1/find.1.html
Es una putada que los argumentos no sean mas intuitivos… O los conoces, por que te los has aprendido, o a rebuscar en inet o en el man cuando no quedan mas …otas.
Gracias de nuevo y muchas gracias como siempre a GNU!
Una pregunta… solo por curiosidad:
Cuando le colocas el argumento «printf» a find…
Utiliza find el comando printf del sistema, o printf esta implementado dentro de find?
Lo digo, por que printf es un comando implementado en el sistema desde siempre, pero del que personalmente jamas he tenido que hacer uso… al menos directamente.
Un saludo!
jac.
sabrias decirme como ejecutar sudo find / -type f -printf ‘%s %p\n’| sort -nr | head -10
evitando algunas rutas?
Tengo por ejemplo :
/dev/sda2 19G 16G 2.8G 85% /
udev 10M 0 10M 0% /dev
tmpfs 3.2G 329M 2.9G 11% /run
tmpfs 7.9G 153M 7.8G 2% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/sda1 453M 37M 389M 9% /boot
/dev/drbd3 477M 2.3M 445M 1% /var/lib/nfs
/dev/drbd1 1.9T 821G 1005G 45% /nfs/home
/dev/drbd2 2.9T 960G 1.8T 36% /nfs/homearchive
/dev/drbd0 962G 426G 488G 47% /nfs/pool
y al ejecutar find / -type f -printf ‘%s %p\n’| sort -nr | head -10
me salen archivos de /nfs/
me gustaria ignorar esa