ฉันจะแสดงรายการไฟล์ทั้งหมดในไดเรกทอรีและขนาดไฟล์วนซ้ำได้อย่างไร?
--- แก้ไข
ฉันต้องการดูขนาด 'สะสม' ไปยังไดเรกทอรีหลักในไดเรกทอรีที่ระบุไว้ ฉันไม่ต้องการเห็นไดเรกทอรีลูกหรือเนื้อหาหรือขนาด
ฉันจะแสดงรายการไฟล์ทั้งหมดในไดเรกทอรีและขนาดไฟล์วนซ้ำได้อย่างไร?
--- แก้ไข
ฉันต้องการดูขนาด 'สะสม' ไปยังไดเรกทอรีหลักในไดเรกทอรีที่ระบุไว้ ฉันไม่ต้องการเห็นไดเรกทอรีลูกหรือเนื้อหาหรือขนาด
คำตอบ:
ฉันเดาว่าวิธีที่ง่ายที่สุดคือการพิมพ์ls -l
หรือls -lh
จะให้ขนาดไฟล์ในรูปแบบที่มนุษย์สามารถอ่านได้ (KB, MB, ฯลฯ )
หาก 'เรียกซ้ำ' หมายถึงการแสดงรายการโฟลเดอร์ที่ตามมาทั้งหมดเช่น:
/ foo /
/ foo / bar / ....
จากนั้นคุณควรเพิ่มพารามิเตอร์R
เช่นls -lR
หรือls -lhR
ข้อมูลเพิ่มเติมสำหรับls
สามารถพบได้โดยการพิมพ์man ls
ปรับปรุง:
คำสั่งต่อไปนี้ตามที่เสนอ Lekensteyn อาจจะทำงาน:
du -h --max-depth=1 <folder>
-h
สำหรับมนุษย์ที่สามารถอ่านได้
--apparent-size
เป็นอีกวิธีหนึ่งในการแสดงขนาดตามที่ระบุไว้แล้ว
--max-depth
คือระดับของโฟลเดอร์ย่อยที่คุณต้องการลงไป
apt-get install ncdu
มันมีการโต้ตอบเช่นกันดังนั้นหากคุณต้องการตรวจสอบในโฟลเดอร์ย่อยเพียงขึ้น, ลง, และเข้าสู่มัน
เพื่อให้ได้ขนาดโดยรวมของไดเรกทอรีและลูกทั้งหมด
du -hs directory/*
tree
ยังตรวจสอบ ไม่ได้ติดตั้งตามค่าเริ่มต้น แต่เป็นที่เก็บ
ตัวอย่าง:
richard@legend:~$ tree Applications/ -s
Applications/
├── [ 4096] AlexFTPS-1.0.2
│ ├── [ 31232] AlexPilotti.FTPS.Client.dll
│ ├── [ 274432] C5.dll
│ ├── [ 1457] C5-License
│ ├── [ 35147] COPYING
│ ├── [ 7639] COPYING.LESSER
│ ├── [ 70] ftps
│ ├── [ 28672] ftps.exe
│ ├── [ 98304] Plossum CommandLine.dll
│ ├── [ 1557] Plossum-License
│ └── [ 2560] README
└── [ 4096] src
└── [ 180849] AlexFTPS_bin_1.0.2.zip
ตัวเลือกเพิ่มเติมสามารถพบได้ในหน้าคน
-h
ขนาดแสดงในแบบที่มนุษย์อ่านได้เช่นtree -s
เนื่องจากคุณไม่ได้กล่าวถึงโดยเฉพาะว่าคุณต้องการโซลูชันที่ใช้เทอร์มินัลฉันคิดว่าbaobab aka Disk Analysis Analyzer หายไปจากรายการ
มันถูกติดตั้งใน Ubuntu โดยค่าเริ่มต้นและทำสิ่งที่คุณต้องการใน UI กราฟิกที่ดีพร้อมความสามารถในการเจาะลึกลำดับชั้นไดเรกทอรี
นอกเหนือจากการแสดงรายการของไดเรกทอรีที่มีขนาดมันยังแสดงแหวนหรือแผนภูมิ treemap ของการใช้งานระบบแฟ้มซึ่งเป็นประโยชน์อย่างมากสำหรับการแสดงไดเรกทอรีที่ใช้พื้นที่มากที่สุด
แก้ปัญหาขั้วเป็นdu
คำสั่ง:
du --all --human-readable --apparent-size
(ชวเลข: du -ah --apparent-size
)
du
แสดงการใช้งานดิสก์สำหรับแต่ละไฟล์และไดเรกทอรี ตัวเลือกที่อธิบาย:
--all
, -a
- ขนาดการแสดงสำหรับไฟล์เช่นกันไม่เพียงไดเรกทอรี--human-readable
, -h
- การแสดงขนาดในรูปแบบการอ่านของมนุษย์เช่น10K
(10 กิโลไบต์) 10
(10 bytes)--apparent-size
- แสดงขนาดไฟล์จริงไม่ใช่ขนาดที่ดิสก์ใช้--max-depth=1
--max-depth=1
-d1
ดูเหมือนว่าจะทำเคล็ดลับเมื่อมีการเชื่อมโยง simlinks
ls -LRlh
ในการรับรายการที่เรียงให้ใส่ทุกอย่างเป็น MB และเรียงลำดับ:
du -m * | sort -n
หรือใช้เครื่องมือเช่นDiskReportเพื่อสร้างรายงานของทรีดิสก์แบบเต็ม
โซลูชันเทอร์มินัลอื่นที่มีfind
และเรียงลำดับ (ตามขนาดไฟล์, คอลัมน์ 1)
$ find . -maxdepth 1 ! -path . -printf "%s %p\n" | sort -n -k1
178 ./somefile.txt
219 ./somefile2.txt
4096 ./c
4096 ./cs2
4096 ./perl
4096 ./python
4096 ./random
4096 ./sh