¿Cómo puedo encontrar los directorios más grandes en unix / Ubuntu?

34

¿Hay alguna manera en Unix para ver los directorios más grandes en el disco?

Necesito saber por qué casi termino con el espacio en el servidor, y no sé dónde se usa la mayor parte del espacio.

Gracias

aneuryzm
fuente
2
posible duplicado de Buscar directorios / archivos más grandes de forma recursiva
pausa hasta nuevo aviso.
Aquí hay uno bueno: unix.stackexchange.com/questions/4681/… - dice usar y du | sort -hluego usar tail- o, puedes usar sort -rhpara que los más grandes estén al principio y puedes usar morepara verlo. Esto funciona muy bien en Ubuntu 16.04 LTS en agosto de 2017.
SDsolar

Respuestas:

54

Intente: du --max-depth=7 /* | sort -nno solo le indicará los directorios, y habrá duplicados, sino que enumerará todo con 7 niveles de profundidad y los ordenará por orden de tamaño.

James L
fuente
13
7 niveles a la vez pueden ser abrumadores. Comenzaría con --max-depth=0(o más bien, usar --summarize/ -s), y luego profundizaría en los directorios más grandes a mano.
Steven lunes
Buen punto, simplemente elija ese número, ya que eso es lo lejos que generalmente llego antes de encontrar algo útil.
James L
3
¿Qué pasa du -cs * | sort -ncon una visión general de qué directorio es más grande?
lorenzog
Prefiero:du -ch | sort -nr | head -10
Sklavit
47

Mi herramienta favorita para esta tarea es ncdu .

pantalla de ejemplo de ncdu

halp
fuente
3
Agradable. Funciona más o menos de la manera en que lo haría a mano (con du | sort), pero con MENOS forma de escribir.
Steven lunes
Esto es mucho mejor. simplemente instale ncdu y escriba el comando ncdu en el directorio que desea analizar, funciona muy rápido.
Jamol
6

Le sugiero que use baobab , que le dará una descripción gráfica del uso de su disco. También se puede usar para carpetas remotas (a través de ssh, ftp, ...) para escanear el uso del disco en un servidor remoto, por ejemplo.

Editar: si desea investigar el uso del disco directamente en el servidor con su acceso de shell y no de forma remota, y desea una herramienta más conveniente que du, también puede probar con durep que generará un informe del uso del disco con gráficos de barras.

uloBasEI
fuente
genial, pero solo tengo acceso de shell en mi VPS (RAM baja)
aneuryzm 11/11/10
3

Usualmente uso algo como esto:

du -ch / | sort

Puede aplicar una restricción de profundidad usando --max-depth = si no quiere ver más allá de un cierto nivel desde su objetivo, así:

du -ch --max-depth=4 /

fuente
0

Prueba df& du -sh /. Y recursivamente du -sh. Sin embargo, no es la mejor solución.


fuente
0

Algo como

sudo du / | ordenar -n

Le dará una respuesta rápida (las últimas entradas son los archivos / directorios más grandes)

Nueva Jersey
fuente
2
Definir rápido? En mi experiencia, esto generalmente toma al menos 5-10 minutos.
James L
0

# cd /; du -shb | sort -nr > /root/home/disk-space-report.txt

LawrenceC
fuente
0

Siempre uso sintaxis como

du -sm --max-depth=4 /path/i/want/to/drill | sort -nr | head -n 20.

La profundidad máxima y los parámetros principales pueden variar, por supuesto, pero lo anterior enumeraría los 20 directorios más grandes.

Janne Pikkarainen
fuente
0

Regularmente estoy corriendo du -dak > du-dak.outen la parte superior de cada sistema de archivos. Entonces, puedo obtener una pantalla gráfica con xdu < du-dak.out. Esto se puede hacer de forma remota después de transferir el archivo du-dak.out a través de la red en caso de que solo tenga acceso de texto.

http://sd.wareonearth.com/~phil/xdu/

jlliagre
fuente