Pregunta Utilidad Linux para encontrar los archivos / directorios más grandes [cerrado]


Estoy buscando un programa que me muestre qué archivos / directorios ocupan más espacio, algo así como:

74% music
 \- 60% music1
 \- 14% music2
12% code
13% other

Sé que es posible en KDE3, pero prefiero no hacerlo: se prefieren KDE4 o la línea de comandos.


128


origen


para usuarios de mac, solo quiero recomendar este software gratuito llamado Disk Inventory X. descárguelo aquí derlien.com es simple de usar para mac osx - Adam Delarosa


Respuestas:


Para encontrar los 10 archivos más grandes (linux / bash):

find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

Para encontrar los 10 directorios más grandes:

find . -type d -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

La única diferencia es -type {d:f}.

Maneja los archivos con espacios en los nombres, y produce tamaños de archivo legibles en la salida. El archivo más grande aparece en último lugar. El argumento a la cola es la cantidad de resultados que ves (aquí los 10 más grandes).

Hay dos técnicas utilizadas para manejar espacios en nombres de archivo. los find -print0 | xargs -0 utiliza delimitadores nulos en lugar de espacios, y el segundo xargs -I{} usa líneas nuevas en lugar de espacios para terminar los elementos de entrada.

ejemplo:

$ find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

  76M    ./snapshots/projects/weekly.1/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.2/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.3/onthisday/onthisday.tar.gz
  76M    ./tmp/projects/onthisday/onthisday.tar.gz
  114M   ./Dropbox/snapshots/weekly.tgz
  114M   ./Dropbox/snapshots/daily.tgz
  114M   ./Dropbox/snapshots/monthly.tgz
  117M   ./Calibre Library/Robert Martin/cc.mobi
  159M   ./.local/share/Trash/files/funky chicken.mpg
  346M   ./Downloads/The Walking Dead S02E02 ... (dutch subs nl).avi

129





Yo siempre uso ncdu. Es interactivo y muy rápido.


185



Sí y es pequeño - Luke Stanley
Amo ncdu. Es uno de mis hallazgos favoritos de google. - Rob
Guau. ¿Cómo no sabía que esto existía? ¡Gracias! - pixel
+1000 por ncdu --- es como htop por espacio en disco. Súper útil! - Noah Sussman
dado que no parece haber indicadores ni una opción .config, aquí está la secuencia de teclas que probablemente escriba cada vez que la ejecute si desea ver los archivos y las carpetas mezclados y las estadísticas de porcentajes relativos: [t] [g] [g]. - rymo


Para una vista rápida:

du | sort -n

enumera todos los directorios con el último más grande.

du --max-depth=1 * | sort -n

o, nuevamente, evitando el redundante *:

du --max-depth=1 | sort -n

enumera todos los directorios en el directorio actual con el último más grande.

(Se requiere el parámetro -n para ordenar de modo que el primer campo se clasifique como un número en lugar de como texto, pero esto impide utilizar el parámetro -h para du, ya que necesitamos un número significativo para el género)

Otros parámetros para du están disponibles si desea seguir los enlaces simbólicos (por defecto no es seguir los enlaces simbólicos) o simplemente mostrar el tamaño del contenido del directorio excluyendo los subdirectorios, por ejemplo. du puede incluso incluir en la lista la fecha y la hora en que se modificó por última vez cualquier archivo en el directorio.


37



Es el * realmente necesario. ¿No incluye de forma predeterminada todos los archivos en el directorio actual? - Josh Hunt
No, el * debe ser redundante. No estoy seguro de si usarlo es señal de un buen hábito o uno malo. Gracias por mencionarlo. He enmendado la respuesta para reflejarla como opcional. - mas
Esto está bien, pero los resultados no son muy amigables. Suelo recurrir a esto: find {/path/to/directory} -type f -size +{file-size-in-kb}k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }' - deed02392
roman # du --max-depth = 1 | ordenar -n du: opción ilegal - - uso: du [-A] [-H | -L | -P] [-a | -s | -d profundidad] [-c] [-l] [-h | -k | -m | -B bsize] [-n] [-x] [-I máscara] [archivo ...] - holms
du -h --max-depth=1 2>/dev/null | sort -nr | grep -v ^0 - Un poco más ordenado - Stuart Cardall


Para la mayoría de las cosas, prefiero las herramientas CLI, pero para el uso de la unidad, realmente me gusta filelight. La presentación es más intuitiva para mí que cualquier otra herramienta de gestión de espacio que haya visto.

Filelight screenshot


23



Filelight es mi herramienta de poda del cerdo espacial de elección. - Ryan Thompson
Muy buena aplicación +1 - rpax
Visualmente, es artísticamente intrigante, pero intuitivo? Solo por mirarlo, no tengo idea de lo que está representando. ¿Alguien puede explicarlo? Fui al sitio y no vi ninguna explicación. - G-Man
Una herramienta similar en Mac es DaisyDisk, disponible en daisydiskapp.com - computingfreak


Filelight es mejor para los usuarios de KDE, pero para completar (el título de la pregunta es general) debo mencionar Baobab está incluido en Ubuntu, también conocido como Disk Usage Analyzer:

enter image description here


20



Si está buscando un equivalente de esto en la plataforma Mac, vaya a DaisyDisk. - computingfreak


Una herramienta GUI, KDirStat, muestra los datos en forma de tabla y gráficamente. Puedes ver muy rápido donde se usa la mayor parte del espacio.

enter image description here

No estoy seguro de si esta es exactamente la herramienta de KDE que no quería, pero creo que todavía debería mencionarse en una pregunta como esta. Es bueno y muchas personas probablemente no lo sepan, yo solo lo aprendí recientemente.


7



Gracias por la respuesta. Es el exacto la misma herramienta que tenía en KDE3, pero me mudé a KDE 4. - Robert Munteanu
¿Estás seguro de que no puedes obtener kdirstat para KDE4? - Jonik
Kdirstat es muuuy lento. Utilizar ncdu en lugar. - Daenyth
Solo presiono ctrl + f para encontrar ncdu, y vi que ya he votado votando @Daenyth - Rob
En KDE, simplemente se llama k4dirstat. - phihag


Una combinación es siempre el mejor truco en Unix.

du -sk $(find . -type d) | sort -n -k 1

Mostrará los tamaños de directorio en KB y los clasificará para obtener los más grandes al final.
Tree-view, sin embargo, necesita algo más de fu ... ¿es realmente necesario?

Tenga en cuenta que esta exploración está anidada en todos los directorios, de modo que contará los subdirectorios de nuevo para los directorios superiores y el directorio base . aparecerá al final como la suma total de utilización.

Sin embargo, puede usar un control de profundidad en el buscador para buscar a una profundidad específica.
Y, en realidad, involucrarse mucho más en su escaneo ... dependiendo de lo que desee. Control de profundidad de findcon -maxdepth y -mindepth puede restringir a una profundidad de subdirectorio específica.


Aquí hay una variación refinada para su problema arg demasiado largo

find . -type d -exec du -sk {} \; |  sort -n -k 1

5



Intenté eso y obtuve un montón de 'du: Tarea: No existe tal archivo o directorio' - Josh Hunt
Gracias por la respuesta. Lamentablemente me sale bash: / usr / bin / du: lista de argumentos demasiado larga - Robert Munteanu


me gusta gt5. Puede navegar por el árbol y abrir subdirectorios para obtener más detalles. Utiliza un navegador web en modo texto, como lynx, para mostrar los resultados. Instalar enlaces para mejores resultados.

alt text


3