¿Cómo se clasifica du -sh /dir/*por tamaño? Leí un sitio que decía uso, | sort -npero obviamente eso no está bien. Aquí hay un ejemplo que está mal.
[~]# du -sh /var/* | sort -n
0 /var/mail
1.2M /var/www
1.8M /var/tmp
1.9G /var/named
2.9M /var/run
4.1G /var/log
8.0K /var/account
8.0K /var/crash
8.0K /var/cvs
8.0K /var/games
8.0K /var/local
8.0K /var/nis
8.0K /var/opt
8.0K /var/preserve
8.0K /var/racoon
12K /var/aquota.user
12K /var/portsentry
16K /var/ftp
16K /var/quota.user
20K /var/yp
24K /var/db
28K /var/empty
32K /var/lock
84K /var/profiles
224M /var/netenberg
235M /var/cpanel
245M /var/cache
620M /var/lib
748K /var/spool
command-line
text-processing
disk-usage
sort
units
xenoterracida
fuente
fuente

sort -hfuncionó para mí en Ubuntu 16.04 LTS en agosto de 2017. Primero encuentro mi unidad montada porcd /mnt(montada por UUID en fstab). Luego lo hagodu >~/dumnt.outysort -h ~/dumnt.out >~/dumntsort.outluego puedo hacer `tail ~ / dumntsort.out para ver los cerdos espaciales más grandes.Respuestas:
Si tiene coreutils de GNU (común en la mayoría de las distribuciones de Linux), puede usar
La
-hopción indicasortque la entrada es el formato legible para humanos (número con unidad; basado en 1024, de modo que 1023 se considera menor que 1K, lo que coincide con lo quedu -hhace GNU ).Esta característica se agregó a GNU Core Utilities 7.5 en agosto de 2009 .
fuente
-rpara ordenar, si desea los más grandes en la parte superiorcoreutilsa travésbrewy agregar la carpeta bin a laPATHen su rc archivo y-hdebe estar disponible.tailcomando para ver a los cerdos.Intente usar el indicador -k para contar bloques de 1K en lugar de usar legibles para humanos. Entonces, tiene una unidad común y puede hacer fácilmente una ordenación numérica.
No necesitas explícitamente unidades humanas, pero si lo hiciste, entonces hay muchas maneras de hacerlo. Muchos parecen usar la técnica de bloqueo 1K anterior, y luego hacen una segunda llamada a du.
https://serverfault.com/questions/62411/how-can-i-sort-du-h-output-by-size
Si desea ver las unidades KB agregadas, use:
fuente
Si no tiene una versión reciente de los coreutils de GNU , puede llamar
dusin-hobtener una salida ordenable y producir una salida amigable para los humanos con un poco de posprocesamiento. Esto tiene la ventaja de funcionar incluso si su versión deduno tiene la-hbandera.Si desea sufijos SI (es decir, múltiplos de 1000 en lugar de 1024), cambie 1024 a 1000 en el
whilecuerpo del bucle. (Tenga en cuenta que se pretende 1000 en la condición, de modo que obtenga, por ejemplo, en1Mlugar de1000k).Si
dutiene una opción para mostrar tamaños en bytes (por ejemplo,-bo-B 1- tenga en cuenta que esto puede tener el efecto secundario de contar los tamaños de archivo reales en lugar del uso del disco), agregue un espacio al comienzo des(es decirs=" kMGTEPYZ";), o agregueif (x<1000) {return x} else {x/=1024}al comienzo de Lahumanfunción.Mostrar un dígito decimal para los números en el rango 1–10 se deja como ejercicio para el lector.
fuente
Si no
sort -htienes puedes hacer esto:Esto obtiene la lista du, separa el sufijo y se ordena usando eso. Como no hay sufijo para <1K, el primer sed agrega una B (por byte). El segundo sed agrega un delimitador entre el dígito y el sufijo. El tercer sed convierte G a Z para que sea más grande que M; Si tiene archivos de terabytes, tendrá que convertir G a Y y T a Z. Finalmente, ordenamos por las dos columnas, luego reemplazamos el sufijo G.
fuente
En OS X, puede instalar los coreutils necesarios a través de Homebrew :
Con esto tendrás
gsort, que incluye el-hparámetro de línea de comando.fuente
Este pequeño script de Perl hace el truco. Guárdalo como
duh(o como quieras) y llámalo conduh /dir/*fuente
Como Mac OS X no tiene la
-hopciónsort, lo intenté y aprendísedyawkpara un primer intento:Es una larga cola. Ampliado, es:
Lo he probado en Mac OS X Mavericks, Yosemite, Ubuntu 2014-04 con
awkser el valor por defectoawk(que esnawk, porque ambosawkynawkel punto a/usr/bin/mawk) o curiosear, y todos ellos trabajaba.Aquí hay una muestra de la salida en una Mac:
en lugar de
du -sk *, vi en la respuesta de @ Stefan donde también se muestra el gran total, y sin atravesar ningún punto de montaje del sistema de archivos, usandodu -skcx *fuente
Esto es lo que uso en Ubuntu 10.04, CentOS 5.5, FreeBSD y Mac OS X.
Me tomó la idea de www.geekology.co.za/ y earthinfo.org , así como los famosos patos de "Servidor Linux Hacks" de O'Reilly. Todavía lo estoy adaptando a mis necesidades. Esto todavía es un trabajo en progreso (como en, estaba trabajando en esto en el tren esta mañana):
Aquí está la salida:
fuente
du -cks -x *? (con el asterisco)ducks,chmod a+x ducksy luego usarlo./duckspara ejecutarlo? Entonces solo veo el uso total del disco, tanto en Mac OS X como en Ubuntu 2014-10. También intenté poner laducks() { ...}definición.bashrcy luego usarladuckspara ejecutarla, y lo mismo en Mac OS X, solo veo el gran totalVuélvete loco con este script
fuente
En ausencia de GNU
sort -h, esto debería funcionar en la mayoría de los entornos UNIX:fuente
Este maneja nombres de archivos con espacios en blanco o apóstrofes, y funciona en sistemas que no admiten
xargs -dosort -h:lo que resulta en:
fuente
Esto ordenará la salida en orden decreciente de tamaño:
Esto ordenará la salida en orden creciente de tamaño:
PD: esto se puede usar para ordenar por cualquier columna, pero los valores de esa columna deben estar en el mismo formato
fuente
sort -k1rnes equivalentesort -rny se ordena numéricamente según la secuencia inicial de dígitos decimales en cada línea. No entiende de punto flotante, y que no entiende losk,M,G... sufijos. 10.1k se consideraría mayor que 1.23GProbado en Solaris!
Esto generará todos los tamaños de directorio de forma recursiva, en la parte inferior será el directorio más grande en Gigabytes y en la parte superior más pequeño en Kilobytes.
fuente
El más grande está en la parte inferior:
fuente
Mando:
du -ah . | sort -k1 -h | tail -n 50Explicación:
du -ah .sort -k1 -h | tail -n 50fuente
Para ordenar por tamaño en MB
fuente
du -h(salida legible por humanos) ordenada numéricamente. No estás dando una respuesta a eso. También puede vincular su cuenta UNIX-SE con las otras cuentas que tiene en los otros sitios SE.Este script es aún más fácil:
fuente
para OSX
fuente
-ksolo la cancelación-hy, de ser así, ¿cómo proporciona esto la salida legible por humanos solicitada por el OP?