¿Qué comando imprimirá los tamaños de todos los archivos y directorios en el directorio tmp (incluidos los ocultos) y los ordenará por tamaños de
mayor a menor en formato legible por humanos (por ejemplo, 2 GB)?
La salida podría ser la siguiente:
file.mpg 2GB
file.avi 1.8GB
.backtup 1.7 GB (this is directory)
Traté de usar el ls
y du
comandos pero no fue capaz de encontrar los interruptores correctos.
Respuesta aceptada:
Aquí hay una solución rápida, use du + sort. Prueba esto:
du -smc * | sort -n
Esto ignorará los archivos ocultos, pero esa es otra solución fácil:
du -smc .[^.] .??* * | sort -n
Esto puede generar advertencias sobre si uno o más de los patrones anteriores no coinciden con un archivo. El primer patrón .[^.]
coincide con todos los nombres de archivo de dos caracteres que comienzan con . excepto por .., el segundo patrón, .??*
coincide con los nombres de archivo de tres letras o más que comienzan con . y * coincide con todos los archivos que no comienzan con . Para una lista más sofisticada, como encontrar todos los archivos más grandes que X en todo un sistema de archivos, o mantener una lista de crecimiento del sistema de archivos, tengo un script de shell de bricolaje que he escrito y puedo compartir si está interesado.