โดยทั่วไปฉันสงสัยว่าพื้นที่ดิสก์ทั้งหมดของฉันถูกกินบนไดรฟ์และฉันต้องการวิเคราะห์ตามประเภทไฟล์
ตัวอย่างเช่นฉันต้องการใช้ Terminal เพื่อดูว่า.psd
ไฟล์ในไดรฟ์ของฉันมีการใช้พื้นที่เท่าใด
มีวิธีทำสิ่งนั้นหรือไม่?
โดยทั่วไปฉันสงสัยว่าพื้นที่ดิสก์ทั้งหมดของฉันถูกกินบนไดรฟ์และฉันต้องการวิเคราะห์ตามประเภทไฟล์
ตัวอย่างเช่นฉันต้องการใช้ Terminal เพื่อดูว่า.psd
ไฟล์ในไดรฟ์ของฉันมีการใช้พื้นที่เท่าใด
มีวิธีทำสิ่งนั้นหรือไม่?
คำตอบ:
ลองสิ่งนี้:
find . -iname '*.psd' -print0 | du -ch --files0-from=-
find . -iname '*.psd'
ค้นหาไฟล์ทั้งหมดที่ลงท้ายด้วยส่วนขยาย psd
-print0
พิมพ์ชื่อไฟล์ตามด้วยอักขระ null แทนการขึ้นบรรทัดใหม่| du -ch --files0-from=-
ใช้ชื่อไฟล์จากfind
และคำนวณการใช้ดิสก์ ตัวเลือกบอกdu
ต่อไปนี้:
--files0-from=-
)-h
) และ-c
)เปลี่ยน.psd
เป็นไฟล์ประเภทใดก็ได้ที่คุณต้องการค้นหาการใช้งานดิสก์
โดยทั่วไปคุณสามารถใช้การรวมกัน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
ใช่คุณสามารถ ไวยากรณ์สำหรับค้นหาไฟล์ในเทอร์มินัลคือ:
Syntax : find foldername -iname '.filetype' -size size
Example : find $HOME -iname '*.mp3' -size +1M
สำหรับสถานการณ์ของคุณจะต้องมีเช่น
find $HOME -iname '*.psd' -size +0M