สิ่งนี้เป็นอันตรายน้อยลงมากตามประสบการณ์ของฉันที่ทำงานกับผู้ใช้หลายร้อยคนในอดีต:
rm () # must be a function, must require single answer for all targets
{
ls -FCsd "$@"
local reply ; echo -n 'remove[ny]? ' ; read reply
if [ "_$reply" = "_y" ] ; then
/bin/rm -rf "$@" ; else echo '(cancelled)'
fi
}
- ผู้ใช้จะได้รับการฝึกฝนให้ใช้ wildcard อย่างถูกต้องไม่ใช่แค่ '*' จากนั้นจึงใช้คำสั่ง y / n เพื่อเลือกไฟล์
- การปรับการใช้อักขระตัวแทนที่ถูกต้องมักจะบันทึกจากความเสียหายเมื่อใช้
rm
ในบริบทอื่นที่ขาดฟังก์ชั่นนี้หรือrm -i
นามแฝง
- ฉันใช้เวลาน้อยลงในการกู้คืนไฟล์ที่ผู้ใช้พิมพ์ 'y' หนึ่งครั้งเกินไป
- ผู้ใช้จะต้องตอบสนองเพียงครั้งเดียว - ให้ข้อเสนอแนะในเชิงบวกที่คมชัดเพื่อการใช้งานของพวกเขา
- การควบคุมขัดจังหวะการทำงานและเป็นรายงานที่ไม่ทำอะไรเลย
- ไม่ใช่สคริปต์ดังนั้นของจริง
rm
จึงไม่ถูกแตะต้องทำให้โปรแกรมอื่น ๆ ไม่ถูกรบกวน
รูปแบบรหัสนั้นส่วนใหญ่ใช้งานได้กับ sh (ยกเว้นการใช้งานecho .... | tr -d '\012'
pre-bash shell) อย่าลังเลที่จะสร้าง bash-specific มากขึ้น ฉันไม่ได้โพสต์เพื่อแชร์รหัส แต่เพื่อแชร์การเปลี่ยนแปลงประสบการณ์ผู้ใช้ที่มาพร้อมกับรหัส