คุณสามารถใช้rm -vเพื่อrmพิมพ์หนึ่งบรรทัดต่อไฟล์ที่ถูกลบ วิธีนี้คุณจะเห็นได้ว่าใช้งานrmได้จริงในการลบไฟล์ แต่ถ้าคุณมีไฟล์หลายพันล้านไฟล์คุณก็จะเห็นว่าrmมันยังใช้งานได้ คุณจะไม่ทราบว่ามีไฟล์ถูกลบไปแล้วกี่ไฟล์และเหลือกี่ไฟล์
เครื่องมือpvสามารถช่วยคุณประเมินความคืบหน้าได้
http://www.ivarch.com/programs/pv.shtml
นี่คือวิธีที่คุณจะเรียกrmด้วยpvด้วยตัวอย่างการส่งออก
$ rm -rv dirname | pv -l -s 1000 > logfile
562 0:00:07 [79,8 /s] [====================> ] 56% ETA 0:00:05
ในตัวอย่างที่ประดิษฐ์นี้ฉันบอกpvว่ามี1000ไฟล์ ผลลัพธ์จากการpvแสดงให้เห็นว่า 562 จะถูกลบไปแล้วเวลาที่ผ่านไปคือ 7 วินาทีและการประมาณให้เสร็จสมบูรณ์คือ 5 วินาที
คำอธิบายบางอย่าง:
pv -lทำให้pvนับขึ้นบรรทัดใหม่แทนไบต์
pv -s numberบอกpvว่ายอดรวมคือเท่าไหร่เพื่อให้การประมาณ
- การเปลี่ยนเส้นทางไป
logfileยังจุดสิ้นสุดมีไว้เพื่อผลลัพธ์ที่สะอาด มิฉะนั้นบรรทัดสถานะจากได้รับการขึ้นผสมกับเอาท์พุทจากpv rm -vโบนัส: คุณจะมี logfile ของสิ่งที่ถูกลบ แต่ระวังไฟล์จะใหญ่ขึ้น คุณสามารถเปลี่ยนเส้นทางไปยัง/dev/nullหากคุณไม่ต้องการบันทึก
ในการรับจำนวนไฟล์คุณสามารถใช้คำสั่งนี้:
$ find dirname | wc -l
สิ่งนี้อาจใช้เวลานานหากมีไฟล์เป็นพันล้านไฟล์ คุณสามารถใช้pvที่นี่เช่นกันเพื่อดูว่ามีการนับจำนวนเท่าใด
$ find dirname | pv -l | wc -l
278k 0:00:04 [56,8k/s] [ <=> ]
278044
นี่มันบอกว่ามันใช้เวลา 4 วินาทีในการนับ 278k ไฟล์ จำนวนที่แน่นอนในตอนท้าย ( 278044) wc -lเป็นเอาท์พุทจาก
หากคุณไม่ต้องการรอการนับคุณสามารถเดาจำนวนไฟล์หรือใช้pvโดยไม่มีการประมาณ:
$ rm -rv dirname | pv -l > logfile
เช่นนี้คุณจะไม่มีการประมาณค่าให้เสร็จ แต่อย่างน้อยคุณจะเห็นว่ามีไฟล์ถูกลบไปแล้วกี่ไฟล์ เปลี่ยนเส้นทางไปที่/dev/nullหากคุณไม่ต้องการ logfile
nitpick:
- คุณต้องการจริงๆ
sudoเหรอ?
- มัก
rm -rจะเพียงพอที่จะลบแบบเรียกซ้ำ rm -fไม่จำเป็นต้องให้