Zasadniczo szukam plików, a następnie sortuję według rozmiaru. Skrypt działa, jeśli nie posortuję rozmiaru według czytelnego dla człowieka. Ale chcę, żeby rozmiar był czytelny dla człowieka. Jak mogę sortować rozmiary, które są czytelne dla człowieka?
Na przykład:
ls -l | sort -k 5 -n | awk '{print $9 " " $5}'
Działa to zgodnie z oczekiwaniami, rozmiar moich plików w bajtach rosnąco:
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
Teraz chcę, aby rozmiar był czytelny dla człowieka, dlatego dodałem parametr -h do ls, a teraz niektóre pliki są nieczynne:
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
wyniku
du
zamiast ls
może być dobrym pomysłem.
find
's -printf
z jego %p
i %s
formaterami (po których następuje „humanizacja” rozmiarów).
-k 5
- Jak to działa?