จะแสดงการใช้ดิสก์ตามประเภทไฟล์ได้อย่างไร?


9

โดยทั่วไปฉันสงสัยว่าพื้นที่ดิสก์ทั้งหมดของฉันถูกกินบนไดรฟ์และฉันต้องการวิเคราะห์ตามประเภทไฟล์

ตัวอย่างเช่นฉันต้องการใช้ Terminal เพื่อดูว่า.psdไฟล์ในไดรฟ์ของฉันมีการใช้พื้นที่เท่าใด

มีวิธีทำสิ่งนั้นหรือไม่?

คำตอบ:


12

ลองสิ่งนี้:

find . -iname '*.psd' -print0 | du -ch --files0-from=-
  • find . -iname '*.psd' ค้นหาไฟล์ทั้งหมดที่ลงท้ายด้วยส่วนขยาย psd
  • -print0 พิมพ์ชื่อไฟล์ตามด้วยอักขระ null แทนการขึ้นบรรทัดใหม่
  • | du -ch --files0-from=-ใช้ชื่อไฟล์จากfindและคำนวณการใช้ดิสก์ ตัวเลือกบอกduต่อไปนี้:
    • คำนวณการใช้ดิสก์ของชื่อไฟล์คั่นด้วยอักขระ null จาก stdin ( --files0-from=-)
    • ขนาดการพิมพ์ในรูปแบบที่มนุษย์สามารถอ่านได้ ( -h) และ
    • พิมพ์ผลรวมในที่สุด ( -c)

เปลี่ยน.psdเป็นไฟล์ประเภทใดก็ได้ที่คุณต้องการค้นหาการใช้งานดิสก์


วิธีการเรียงลำดับผลลัพธ์ตามขนาด
ulkas

0

โดยทั่วไปคุณสามารถใช้การรวมกันfindและawkเพื่อรายงานการจัดกลุ่มการใช้ดิสก์โดยกฎใด ๆ ที่คุณเลือก ต่อไปนี้เป็นคำสั่งที่จัดกลุ่มตามนามสกุลไฟล์ (สิ่งใดก็ตามที่ปรากฏขึ้นหลังจากช่วงสุดท้าย):

# output pairs in the format: `filename size`.
# I used `nawk` because it's faster.
find -type f -printf '%f %s\n' | nawk '
  {
    split($1, a, ".");       # first token is filename
    ext = a[length(a)];      # only take the extension part of the filename
    size = $2;               # second token is file size
    total_size[ext] += size; # sum file sizes by extension
  }
  END {
    # print sums
    for (ext in total_size) {
      print ext, total_size[ext];
    }
  }'

จะผลิตสิ่งที่ต้องการ

wav 78167606
psd 285955905
txt 13160

-1

ใช่คุณสามารถ ไวยากรณ์สำหรับค้นหาไฟล์ในเทอร์มินัลคือ:

Syntax   :   find foldername -iname '.filetype' -size size 

Example  :   find $HOME -iname '*.mp3' -size +1M

สำหรับสถานการณ์ของคุณจะต้องมีเช่น

find $HOME -iname '*.psd' -size +0M

สำหรับข้อมูลเพิ่มเติมโปรดดูเอกสารอย่างเป็นทางการที่นี่


ใช่ แต่จะพิมพ์ชื่อไฟล์ที่เป็น + 0M เท่านั้นจะไม่บอกขนาดของไฟล์
Alaa Ali

ใช่ฉันเห็นคำตอบของคุณสมบูรณ์แบบ!
PAC
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.