ฉันจะแสดงไฟล์ในไดเรกทอรี unix ที่เรียงตามขนาดที่มนุษย์สามารถอ่านได้จากใหญ่ไปหาน้อยที่สุดได้อย่างไร
ฉันเหนื่อย
du -h | sort -V -k 1
แต่ดูเหมือนจะไม่ทำงาน
ฉันจะแสดงไฟล์ในไดเรกทอรี unix ที่เรียงตามขนาดที่มนุษย์สามารถอ่านได้จากใหญ่ไปหาน้อยที่สุดได้อย่างไร
ฉันเหนื่อย
du -h | sort -V -k 1
แต่ดูเหมือนจะไม่ทำงาน
คำตอบ:
ls(1)
/sort
:
-S sort by file size
-S
ไม่มีอาร์กิวเมนต์การเรียงลำดับที่ถูกต้องอย่างน้อยใน Ubuntu อีกต่อไป คำตอบด้านล่างโดย @alex ทำงานสำหรับฉัน การเชื่อมโยงคำตอบคือsuperuser.com/a/990437/528836
$ ls -lhS
-l use a long listing format
-h with -l, print sizes in human readable format (e.g., 1K 234M 2G)
-S sort by file size
หากคุณมีsort
รุ่นที่เหมาะสมคุณสามารถใช้:
du -h | sort -rh
ของฉันคือ
$ sort --version
sort (GNU coreutils) 8.12
ls -S
ไม่ใช่ตัวเลือกสำหรับ OS สำหรับฉัน การทำงานต่อไปนี้:
ls -l | sort -k 5nr
พวกเขา "สำคัญ" คือการระบุคอลัมน์ที่จะเรียงลำดับ (รับมันว่า "กุญแจ") ด้านบนฉันระบุการเรียงลำดับ-k 5nr
ความหมายในคอลัมน์ที่ 5 ซึ่งมีขนาด (5) ประเมินว่าเป็นตัวเลข (n) ตามลำดับจากมากไปน้อย (n)
เอกสารอ้างอิงเรียงลำดับสำหรับข้อมูลเพิ่มเติม
du -ha | sort -h
du
: ประมาณการการใช้งานดิสก์ไฟล์
-h : for human
-a : all files
sort
: เรียงลำดับบรรทัดข้อความ
-h : for human
man du; man sort
มากขึ้น มันใช้งานได้สำหรับฉันบน Ubuntu v15
ฉันได้รับสิ่งนี้เพื่อฉัน:
ls -l | sort -g -k 5 -r
ซึ่ง (ฉันเพิ่งคิดออก) เป็นเช่นเดียวกับ:
ls -lS
ซึ่งแตกต่างจากls -S
นี้จะจัดการกับไฟล์ที่กระจัดกระจาย:
ls -lsh | sort -n | sed 's/^[0-9 ]* //'