Para enumerar los archivos en cualquier lugar /tmp
, ordenados por tamaño:
find /tmp -type f -exec du -k {} + | sort -k1n -k2
Para enumerar los archivos y los árboles de directorios inmediatamente debajo /tmp
, ordenados por tamaño:
du -k /tmp/..?* /tmp/.[!.]* /tmp* 2>/dev/null | sort -k1n -k2
Para enumerar todos los archivos y árboles de directorios en cualquier lugar /tmp
, ordenados por tamaño:
du -ak /tmp | sort -k1n -k2
(Un ejemplo para ilustrar la diferencia entre los tres comandos: si hay un archivo /tmp/dir/file
, la primera lista de comandos /tmp/dir/file
, la segunda lista /tmp/dir
y la tercera lista ambas).
Todos los comandos anteriores muestran tamaños en kilobytes. Si bien GNU du puede generar tamaños "legibles para humanos" (con multiplicadores k, M, G, etc.), ordenarlos es otra cuestión. Bastante reciente GNU coreutils (≥7.4) puede hacerlo: simplemente reemplace du -k
con du -h
y sort -k1n -k2
con sort -k1h -k2
. De lo contrario, aquí hay un script awk crudo para convertir a tamaños con sufijo (redondeando hacia abajo); simplemente canalice la sort
salida de arriba en él.
awk -vFS='\t' -vOFS='\t' '{
if ($1) $1 = substr($1,1,(length($1)-1)%3+1)
substr("kMGTPEZY",(length($1)-1)/3+1,1);
print}'