สารละลาย
โดยการจัดหาตัวเลือก-c
(หรือ--total
) ให้du(1)
คุณสามารถสั่งให้ผลิตผลรวมทั้งหมด หากการใช้งานของคุณdu(1)
รองรับตัวเลือกเหล่านี้คุณสามารถบรรลุผลตามที่ต้องการโดยใช้คำสั่งต่อไปนี้:
$ find . -name 'flibble*' -ctime +90 -exec du -shc {} +
แก้ไข:โปรดทราบว่าหากจำนวนไฟล์เกินจำนวนสูงสุดของพารามิเตอร์ที่ระบบของคุณอนุญาตfind
อาจยังคงใช้งานได้command
หลายครั้ง การใช้งานบางส่วนของdu(1)
ยังสนับสนุนการอ่านชื่อไฟล์จากไฟล์ซึ่งไม่ประสบข้อ จำกัด ดังกล่าว:
$ find -name 'flibble*' -ctime +90 -print0 > filenames
$ du -shc --files0-from=filenames
คำอธิบาย
ความแตกต่างระหว่างความหมายของ-exec command {} \;
และ-exec command {} +
มีดังต่อไปนี้:
command {} \;
รันcommand
หนึ่งครั้งสำหรับผลลัพธ์แต่ละfind
รายการ ชื่อพา ธ {}
ของผลที่ได้จะถูกส่งแทน
$ touch 1 2 3
$ find 1 2 3 -maxdepth 0 -exec echo {} \;
1
2
3
command {} +
ดำเนินการcommand
เมื่อผลลัพธ์ทั้งหมดได้รับการเรียกคืน pathnames {}
ของผลที่จะถูกส่งผ่านแทน
$ touch 1 2 3
$ find 1 2 3 -maxdepth 0 -exec echo {} +
1 2 3
-print0
ตัวเลือกที่เป็นสาเหตุของfind(1)
การพิมพ์ชื่อไฟล์ที่พบในการออกมาตรฐานคั่นด้วยอักขระ null และ--files0-from
ตัวเลือกที่เกิดจากdu(1)
การอ่านชื่อไฟล์ null คั่น ไม่เหมือนกับอักขระขึ้นบรรทัดใหม่อักขระ null อาจไม่ปรากฏในชื่อไฟล์ดังนั้นเอาต์พุตจึงไม่คลุมเครือ
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับตัวเลือกของdu(1)
และfind(1)
คุณควรปรึกษา manpages ที่เกี่ยวข้อง:
$ man du
$ man find