Encontrar archivos que usan más espacio en disco


43

¿Es posible enumerar los archivos más grandes en mi disco duro? Utilizo df -Hcon frecuencia para mostrar el uso de mi disco, pero esto solo da el porcentaje completo, los GB restantes, etc.

Hago muchos cálculos intensivos en datos, con una gran cantidad de archivos pequeños y una cantidad muy pequeña de archivos muy grandes. Dado que la mayor parte del espacio en disco que utilizo está en un número muy pequeño de archivos, puede ser difícil rastrear dónde están estos archivos grandes. Eliminar un archivo de 1 kB no libera mucho espacio, pero eliminar un archivo de 100 GB sí. ¿Hay alguna forma de ordenar los archivos en el disco duro en términos de su tamaño?

Gracias.


Respuestas:


47

Con herramientas estándar disponibles:

Para enumerar los 10 archivos más grandes del directorio actual: du . | sort -nr | head -n10

Para enumerar los directorios más grandes del directorio actual: du -s * | sort -nr | head -n10

ACTUALIZACIÓN En estos días usualmente uso un formulario más legible (como explica Jay Chakra en otra respuesta y lo dejo | head -n10, simplemente déjelo desplazarse fuera de la pantalla. La última línea tiene el archivo o directorio más grande (árbol).

A veces, por ejemplo. cuando tiene muchos puntos de montaje en el directorio actual, en lugar de usar -xo múltiples --exclude=PATTERN, es más práctico montar el sistema de archivos en un punto de montaje no utilizado (a menudo /mnt ) y trabajar desde allí.

Tenga en cuenta que cuando trabaja con grandes volúmenes (NFS), puede causar una carga sustancial en el backend de almacenamiento (archivador) cuando se ejecuta duen muchos (sub) directorios. En ese caso, es mejor considerar configurar quotael volumen.


3
Para su primera opción, ¿no puede simplemente enumerarlos ls -Sl | head?
Bernhard

No, duatraviesa todo el árbol de directorios, mientras que ls -S solo verifica el directorio actual.
jippie

35

Agregando a la respuesta de jippie

Para enumerar los directorios más grandes del directorio actual en formato legible por humanos:

du -sh * | sort -hr | head -n10

Muestra:

[~]$ du -sh * | sort -hr | head -n10
48M app
11M lib
6.7M    Vendor
1.1M    composer.phar
488K    phpcs.phar
488K    phpcbf.phar
72K doc
16K nbproject
8.0K    composer.lock
4.0K    README.md

Hace que sea más conveniente leer :)


14

Intente ncdu, ya que puede darle una visión general del uso del disco. Desde su sitio web:

Un analizador de uso de disco con una interfaz ncurses, destinado a ejecutarse en un servidor remoto donde no tiene una configuración gráfica completa, sino que tiene que ver con una simple conexión SSH. ncdu pretende ser rápido, simple y fácil de usar, y debería poder ejecutarse en cualquier entorno mínimo similar a POSIX con ncurses instalado.


3

(ñu)

du -max /dir | sort -nMostrará archivos grandes, así como directorios grandes, se pueden usar para identificar dónde necesita hacer alguna limpieza.

du -max | sort -n | tail -1000
...
46632   ./i386/update/SuSE-SLES/8/rpm/i586/kernel-source-2.4.21-138.i586.rpm
49816   ./UnitedLinux/apt/i386/RPMS.updates/k_debug-2.4.21-138.i586.rpm
679220  ./UnitedLinux/apt/i386/RPMS.updates
679248  ./UnitedLinux/apt/i386
679252  ./UnitedLinux/apt
691820  ./UnitedLinux/i586
691836  ./i386/update/SuSE-SLES/8/rpm/i586
695192  ./i386/update/SuSE-SLES/8/rpm
695788  ./i386/update/SuSE-SLES/8
695792  ./i386/update/SuSE-SLES
695804  ./i386/update
695808  ./i386
1390184 ./UnitedLinux

(Sé que es un árbol bastante viejo: p)


2

Hay una manera simple y efectiva de encontrar el tamaño de cada archivo y directorio en Ubuntu:

Aplicaciones> Accesorios> Analizador de uso de disco

en esta ventana, haga clic en el botón "Escanear sistema de archivos" en la barra de herramientas. después de un corto tiempo (segundos) tiene uso de disco de cada directorio y archivo.



0

Puede probar con este comando, enumerará todos los archivos de más de 20Mb.

find / -type f -size +20000k -exec ls -lh {} \; 2> /dev/null \
  | awk '{ print $NF ": " $5 }'  | sort -hrk 2,2

3
Si el archivo más grande en su sistema de archivos es de 20 MB, probablemente no se quedará sin espacio en disco. Al menos con cualquier HD hecho este milenio
Kevin

Ese es solo un ejemplo, pones allí lo que quieras. Encontrará todo más grande que 20 MB, no solo archivos de 20 MB.
patseb

ls -lhentonces sort?? ls -so stat -c %bson probablemente mejores
Mikel

No entiendo Mi ejemplo usa ls y sort. Quería encontrar archivos en todo el disco, no en el directorio.
patseb

0

escriba el siguiente comando

discos compactos /

luego escribe

du -sh * | grep G

El comando anterior le muestra cuánta memoria utiliza cada directorio. después de eso, debe decidir qué directorio o archivo desea eliminar


-2

Puede probar con este comando, enumerará el archivo grande:

ls -lrS | tail -1

muestra el directorio actual, no el disco duro completo.
slm

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.