¿Cómo entender qué está ocupando espacio en disco?

86

Estoy buscando una alternativa de Linux a WinDirStat . Me gustaría saber qué ocupa espacio en mis discos duros.

Se prefiere un programa que funcione en la consola y no requiera una interfaz de usuario.

ripper234
fuente
ncdues mi respuesta preferida, pero veo que la primera respuesta dice que tienes problemas con eso que no están en tu pregunta.
SDsolar

Respuestas:

74

Basado en sus problemas al instalar ncdu, mi recomendación sería usar duy seguirsort juntos.

Por ejemplo:

  • du /home | sort -rn (buscará todos los archivos / directorios en / home y los ordenará de mayor a menor).
  • du -h /home | sort -rh(lo mismo pero lo mostrará en MB / KB / etc.) - Tenga en cuenta que esto requiere coreutils 7.5 o posterior ( sort --versionpara verificar)

Puede reemplazar / home con cualquier directorio de su elección.

Nueva Jersey
fuente
Eso es excelente, gracias por la ayuda. Mi coreutils es 5.97, ¿es por eso que el orden de clasificación de du -h no es correcto?
ripper234
Sí, tendrías que conformarte du /home | sort -rncon coreutils 5.97 o usar algo de 'magia' con perl, etc., como se demostró en ServerFault ( serverfault.com/q/62411/60012 )
NJ
2
OTOH si hay un gran subdirectorio grande, su hinchazón mostrará varias veces (para ese directorio y cada directorio padre) en la parte superior de los resultados, y en mi humilde opinión, eso distrae de la hinchazón verdadera. Usar "ncdu" sugerido a continuación podría ayudar con eso, lo intentaré. =)
lapo
2
Creo que la opción -size para "buscar" también es útil, ya que te permite encontrar todos los archivos en un determinado. Al menos para GNU find, puede hacer algo como: "find. -Size + 100M" para buscar archivos de más de 100M debajo del directorio actual.
Gabe.
89

Si quieres una herramienta de línea de comandos, prefiero ncdu , una versión de ncurses du. Escanea el disco (o una carpeta determinada) y luego muestra los usos del espacio de nivel superior; puede seleccionar un directorio determinado para obtener el resumen correspondiente para ese directorio y regresar sin necesidad de volver a analizar:

Captura de pantalla de ncdu


Si está de acuerdo con un programa GUI, Filelight es lo más parecido a WinDirStat que he encontrado; Muestra una vista gráfica del consumo de espacio:

Captura de pantalla de Filelight

Al igual ncdu, Filelight le permite seleccionar un directorio determinado para obtener el desglose de ese directorio

Michael Mrozek
fuente
44
¿No crees que QDirStat está más cerca de WinDirStat?
Janus Troelsen
39

Debe tener en cuenta que WinDirStat es en realidad un puerto de KDirStat , que es un programa Linux / KDE. Por lo tanto, si está buscando una alternativa de Linux a WinDirStat, debería echar un vistazo a KDirStat . Ya está empaquetado en la mayoría de las distribuciones, solo instálelo.

Otra alternativa es FileLight, ya citado por Michael Mrozek, y el complemento Konqueror fsview(puede ejecutarlo desde la línea de comandos).

Juliano
fuente
16
Wow, nunca me di cuenta de eso (supongo que "Win" en el nombre debería haber sido un regalo). Un compañero de trabajo una vez me preguntó si había una versión Linux de WinSCP ; Morí dentro un poco
Michael Mrozek
3
@ comentario anterior. Ay. Solo ay.
David Oneill
2
Tenga en cuenta que se llamará K4DirStat para Ubuntu si se instala a través del centro de software
y3sh
osudo apt-get install k4dirstat
y3sh
34

Otro programa GUI es: baobab

texto alternativo

sudobash
fuente
De hecho, si estoy en Ubuntu no me molestaré en buscar ninguna alternativa. baobapes suficiente
phunehehe
También muestra la cantidad de archivos, que a veces deben verificarse, así como el espacio en el disco
golimar
9

Use QDirStat (anteriormente KDirStat).

Incluye un script perl que genera un archivo de caché en el servidor / consola sin necesidad de que se ejecute / instale una IU; transfiéralo a su máquina de escritorio y véalo en el cliente gui.

Consulte https://unix.stackexchange.com/a/256516/186308 para más detalles.

icyerasor
fuente
Es ridículamente rápido. muy buena herramienta
phil294
7

Prefiero la siguiente línea de comando:

$  du -s -m -x * | sort -n

Desglosándolo, dumuestra el uso del disco; -sdice imprimir el total para cada argumento (cada elemento en el directorio actual), -mdice mostrar el tamaño en megabytes. Esto facilita que funcione la ordenación; sort realmente no entiende la -hsalida. El -xignora otros sistemas de archivos; Esto es útil cuando se trata de encontrar cerdos espaciales /vary /var/spool/fooes un sistema de archivos diferente.

P Joslin
fuente
¿La respuesta principal ya no se usa du?
muru
Sí, pero du / home en mis sistemas devuelve decenas de miles de archivos; Raramente me importa cuáles son los (digamos) 100 de esos archivos más grandes; Normalmente quiero saber qué subdirectorios ocupan más espacio.
P Joslin
En lugar de -s, especifiqué --max-depth = 2, ya que quería ir un directorio hacia abajo desde el directorio raíz, pero su respuesta me señaló en esa dirección. ¡Gracias!
John Eisbrener
6

También hay esta secuencia de comandos de Python genial de /www.vrplumber.com/programming/runsnakerun/

bzr branch lp:~mcfletch/squaremap/trunk squaremap

No es el más rico en funciones, pero se ejecuta desde un solo script de Python, por lo que es extremadamente portátil.

texto alternativo

Falmarri
fuente
6

Si miraste la pantalla Acerca de en windirstat, te mostró que está basado en kdirstat.

http://kdirstat.sourceforge.net/

DF1eCH
fuente
Me gusta la respuesta, pero ¿podría agregar algún contexto o detalles?
Volker Siegel
4

También puede probar GD Map , otra herramienta GUI basada en mapas de árbol.

Bruno
fuente
3

xdiskusage es muy flexible, liviano con dependencias muy magras, fácil de compilar.

Muestra un árbol de izquierda a derecha que puede navegar con el mouse o las teclas de flecha, acercar (hacer clic o ingresar), ocultar algunas partes para una mejor vista, cambiar el orden de clasificación, el número de colores, etc. con las teclas o el menú contextual.

Es tan liviano que puede usarlo en un enlace SSH remoto con buen rendimiento. En este caso, recomiendo la -qopción de línea de comando para deshabilitar la barra de progreso que aparece mientras se recorren los archivos.

Opcionalmente, también puede ejecutarse de duantemano.

Una situación es un sistema de archivos remoto que está lleno o casi lleno. En ese sistema ejecutado du -ak | gzip >log_of_disk_usage.txt.gz, obtenga el resultado y ejecútelo gzip -dc log_of_disk_usage.txt.gz | xdiskusage -aqlocalmente.
O incluso ssh myremotesystem "cd /filesystem_near_full/ ; du -ak | gzip" > log_of_disk_usage.txt.gzpara almacenar el resultado localmente sin escribir nada de forma remota.

xdiskusage no ofrece modificar el sistema de archivos (como mover a la papelera, etc.) pero puede copiar una ruta al portapapeles y pegarla en un administrador de archivos, terminal, etc.

Captura de pantalla de xdiskusage

Stéphane Gourichon
fuente
2

Recientemente he usado la herramienta de línea de comandos (CLI, no TUI): http://zevv.nl/play/code/philesight/

Produce un archivo PNG que puede ver en otro lugar. También tiene un script CGI.

Lo más probable es que no esté limitado al modo de texto en su estación de trabajo local, por lo que debería ser apropiado.

OCTAGRAMA
fuente
1

También para ver los archivos en un directorio específico ordenado por tamaño después de haber encontrado el directorio usando du use:

ls -lrSh
Wodin
fuente
1

Duc ( https://duc.zevv.nl/ ) funcionará desde la línea de comandos.

Se puede instalar y usar así en Debian 9:

# apt install duc
# duc index /
# duc graph /

Con esto obtendrás un archivo nombrado duc.pngen el directorio actual. Ahora, puede copiar este archivo a otra computadora con capacidad GUI y se verá así: duc.png

NOTA: Duc es el reemplazo de la herramienta que @OCTAGRAM mencionó en su respuesta.

Jaime Hablutzel
fuente