โดยทั่วไปฉันกำลังมองหาไฟล์แล้วจัดเรียงตามขนาด สคริปต์ทำงานได้ถ้าฉันไม่จัดเรียงตามขนาดที่มนุษย์อ่านได้ แต่ฉันต้องการขนาดที่มนุษย์สามารถอ่านได้ ฉันจะจัดเรียงขนาดที่มนุษย์สามารถอ่านได้ได้อย่างไร
ตัวอย่างเช่น:
ls -l | sort -k 5 -n | awk '{print $9 " " $5}'
ใช้งานได้ตามที่คาดหวังฉันมีขนาดไฟล์ของฉันเป็นไบต์จากน้อยไปมาก:
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
ตอนนี้ฉันต้องการให้ขนาดที่มนุษย์อ่านได้ดังนั้นฉันจึงเพิ่มพารามิเตอร์ -h ลงใน ls และตอนนี้ไฟล์บางไฟล์ไม่เป็นระเบียบ:
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
แทนที่จะls
เป็นความคิดที่ดี
find
's -printf
ด้วย%p
และ%s
จัดรูปแบบ (ตามด้วย‘humanisation’ของขนาด)
-k 5
- มันทำงานอย่างไร