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


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.


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


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


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


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.


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.


¿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



4

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


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


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.


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

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.

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.