Básicamente busco archivos y luego los ordeno por tamaño. El script funciona si no clasifico el tamaño por legible por humanos. Pero quiero que el tamaño sea legible para los humanos. ¿Cómo puedo clasificar tamaños que sean legibles por humanos?
Por ejemplo:
ls -l | sort -k 5 -n | awk '{print $9 " " $5}'
Esto funciona como se esperaba, obtuve el tamaño de mis archivos en bytes ascendentes:
1.txt 1
test.txt 3
bash.sh* 573
DocGeneration.txt 1131
andres_stuff.txt 1465
Branches.xlsx 15087
foo 23735
bar 60566
2016_stuff.pdf 996850
Ahora, quiero que el tamaño sea legible para humanos, así que agregué un parámetro -h a ls, y ahora algunos archivos están fuera de servicio:
ls -lh | sort -k 5 -n | awk '{print $9 " " $5}'
1.txt 1
DocGeneration.txt 1.2K
andres_stuff.txt 1.5K
test.txt 3
Branches.xlsx 15K
foo 24K
bar 60K
bash.sh* 573
2016_stuff.pdf 974K
ls
salida
du
lugar de ls
podría ser una buena idea.
find
's -printf
con sus %p
y %s
formateadores (seguido de una "humanización" de los tamaños).
-k 5
- ¿Cómo funciona?