แน่นอนหนึ่งอาจโต้แย้งว่าการสร้างไดเรกทอรีหลักควรเป็นค่าเริ่มต้นและตัวเลือกการตรวจสอบบางอย่างสามารถใช้เพื่อป้องกันการสร้างไดเรกทอรีหากไม่มีอยู่
แต่สาเหตุที่มันเป็นอย่างอื่นคือประวัติศาสตร์ รุ่นพื้นฐานของmkdirไม่ได้สร้างไดเรกทอรีหลัก นี่คือสาเหตุที่การแจกแจง X11 มาพร้อมกับคำสั่งชื่อmkdirhierซึ่งสามารถทำงานนี้ได้สำเร็จ: ตรวจสอบว่ามีไดเรกทอรีหลักอยู่และสร้างถ้าจำเป็น
ต่อมาในฟังก์ชั่นนี้ถูกเพิ่มเข้าไปในคำสั่งmkdirใน UNIX หลายเวอร์ชัน (ฉันไม่รู้ว่ามันอยู่ในมาตรฐาน POSIX ทุกวันนี้) -pเพื่อรักษาความเข้ากันได้คุณลักษณะนี้ถูกสร้างขึ้นโดยการเปิดธงตัวเลือก:
ทำไมการเปิดใช้งานตามค่าเริ่มต้นจึงไม่ดี สคริปต์อาจขึ้นอยู่กับmkdir ที่ล้มเหลวหากไม่มีไดเรกทอรีหลัก โดยเฉพาะอย่างยิ่งในฐานะผู้ใช้รูทอาจเป็นอันตรายในการสร้างแผนผังไดเรกทอรีโดยค่าเริ่มต้น
ตัวอย่าง:
if mkdir /backup/$(uname -n)/$(date +%Y%m%d)
then
perform_backup ...
ในตัวอย่างนี้ไดเร็กทอรีจะถูกสร้างและการสำรองข้อมูลจะดำเนินการแม้เป็นระบบไฟล์/backupไม่ถูกเมาต์และพาเรนต์/backup/$(uname -n)ไม่มีอยู่หากค่าดีฟอลต์จะเป็นวิธีอื่น
Rule of thumb: เป็นการดีที่จะไม่เปลี่ยนพฤติกรรมเริ่มต้นของเครื่องมือใด ๆ หากต้องการให้ตัวเลือกในการอนุญาตให้เปลี่ยนพฤติกรรมเริ่มต้น
alias mkdir="mkdir -p"ของคุณ: