ทำไมเครื่องมือที่ชอบcp
และrm
ปฏิบัติต่อไดเรกทอรีแยกจากไฟล์ปกติ? พวกเขาทั้งสองต้องการให้ผู้ใช้ระบุอย่างชัดเจนว่าเธอต้องการพฤติกรรมแบบเรียกซ้ำมิฉะนั้นพวกเขาจะไม่จัดการกับไดเรกทอรีเลย
การโต้ตอบครั้งแรกของฉัน (กลับมาอีกครั้ง) กับคอมพิวเตอร์อยู่ในสภาพแวดล้อม Windows / GUI / จุดและคลิก / ลากและวาง
พฤติกรรมนี้ทำให้ฉันผิดหวังเมื่อฉันให้คำสั่งด้วย wildcard หากฉันต้องการที่จะลบทุกอย่างในไดเรกทอรี ( *
) ยกเว้นsubdirs ไม่ว่างเปล่า ?
ฉันสามารถจินตนาการได้ว่านี่เป็นคุณลักษณะด้านความปลอดภัยบางอย่างที่จะป้องกันไม่ให้ผู้ใช้ยิงตัวเองด้วยการเดินเท้า แต่สิ่งนี้ขัดแย้งกับความเข้าใจของฉันเกี่ยวกับหลักการ Unix สองสามข้อ:
- Unix มักจะไม่ปกป้องผู้ใช้จากตัวเอง มีการสันนิษฐานเสมอว่าผู้ใช้รู้ว่าเธอกำลังทำอะไรอยู่
- สำหรับ Unix ทุกอย่างเป็นไฟล์ ไดเรกทอรีไม่ใช่ไฟล์อื่นใช่หรือไม่ ทำไมพวกเขาถึงได้รับการปฏิบัติต่างกัน?
คำถามของฉัน:
- พฤติกรรมนี้เกิดจากข้อ จำกัด ทางเทคนิคหรือเป็นตัวเลือกโดยเจตนาหรือไม่?
และในกรณีหลัง
- มีเรื่องราวทางประวัติศาสตร์เกี่ยวกับเหตุผลที่กระตุ้นตัวเลือกนี้หรือไม่?
rm
อย่างน้อยถ้าคุณต้องการที่จะไม่สนใจความแตกต่างระหว่างไฟล์และไดเรกทอรีที่คุณสามารถใส่ในของคุณไฟล์:~/.bashrc
alias rm='rm -r'