Temelde dosya boyutuna göre sıralama arıyorum. Boyutu insan tarafından okunabilir sıralamazsanız komut dosyası çalışır. Ama boyutun insan tarafından okunabilir olmasını istiyorum. İnsan tarafından okunabilir boyutları nasıl sıralayabilirim?
Örneğin:
ls -l | sort -k 5 -n | awk '{print $9 " " $5}'
Bu beklendiği gibi çalışır, artan bayt cinsinden dosyalarımın boyutunu aldım:
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
Şimdi, boyutun okunabilir olmasını istiyorum, bu yüzden ls'ye bir -h parametresi ekledim ve şimdi bazı dosyalar bozuk:
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
du
Bunun yerine kullanmak ls
iyi bir fikir olabilir.
find
'ın -printf
kendi diliyle %p
ve %s
(boyutları ‘insaniletirilmesi’ izledi) biçemleyicilerle.
-k 5
- bu nasıl çalışıyor?