คำตอบที่ได้รับจนถึงขณะนี้ไม่ได้คำนึงว่ารายชื่อไฟล์ที่ส่งผ่านจากหา du อาจจะยาวเพื่อให้พบโดยอัตโนมัติแยกรายการเป็นชิ้นที่มีผลในหลาย ๆ total
ที่ปรากฏของ
คุณสามารถgrep total
(locale!) และรวมด้วยตนเองหรือใช้คำสั่งอื่น AFAIK มีเพียงสองวิธีในการรับผลรวมทั้งหมด (เป็นกิโลไบต์) ของไฟล์ทั้งหมดที่พบโดย find:
find . -type f -iname '*.jpg' -print0 | xargs -r0 du -a| awk '{sum+=$1} END {print sum}'
คำอธิบาย
find . -type f -iname '*.jpg' -print0
: ค้นหาไฟล์ทั้งหมดที่มีนามสกุล jpg โดยไม่คำนึงถึงตัวพิมพ์เล็ก (เช่น * .jpg, * .JPG, * .Jpg ... ) และส่งออก (สิ้นสุดด้วย null)
xargs -r0 du -a
: -r: Xargs จะเรียกคำสั่งแม้ไม่มีการส่งผ่านอาร์กิวเมนต์ซึ่ง -r ป้องกัน -0 หมายถึงสตริงที่สิ้นสุดด้วยค่า null (ไม่ใช่การขึ้นบรรทัดใหม่)
awk '{sum+=$1} END {print sum}'
: สรุปขนาดไฟล์ที่ส่งออกโดยคำสั่งก่อนหน้า
และสำหรับการอ้างอิงวิธีอื่นจะเป็น
find . -type f -iname '*.jpg' -print0 | du -c --files0-from=-