Busca los directorios o archivos más grande de tu disco duro con find

¿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.


11 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   borisadrian dijo

    Justo lo que buscaba para saber donde ocupo mas espacio en mi raíz y así poder liberarla.

    Gracias.

  2.   Eduardo dijo

    Muy buen artículo, muy útil. Muchas gracias… Por cierto, Hala Madrid!! jejeje

    1.    FIXOCONN dijo

      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

  3.   3rn3st0 dijo

    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!

  4.   woqer dijo

    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

  5.   vidagnu dijo

    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

  6.   hup80 dijo

    Y cuál es la explicación para cada opción?

  7.   Luis Gago Casas dijo

    Muy buen articulo me fue de gran ayuda.
    Muchas gracias por compartirlo.

  8.   Rogelio Reyes dijo

    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.

  9.   jac dijo

    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.

  10.   duven dijo

    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