Ban đầu , chỉ có mkdirlệnh trần . Theo nguyên tắc thiết kế của Unix, lệnh đơn giản này đã thực hiện một nhiệm vụ đơn giản: tạo thư mục.
Sau đó, mkdircó được một -ptùy chọn để xử lý một trường hợp sử dụng phổ biến trong đó người gọi muốn tạo 0, một hoặc nhiều thư mục để đảm bảo rằng một đường dẫn cụ thể tồn tại. Điều này đã không được thực hiện các hoạt động mặc định vì một số lý do. Đầu tiên, không phải tất cả các hệ thống đều có tính năng phức tạp hơn này và yêu cầu -ptùy chọn có nghĩa là các tập lệnh đã sử dụng nó sẽ nhận được thông báo lỗi hợp lý (đại loại như vậy mkdir: invalid option -z) thay vì thỉnh thoảng không tạo được thư mục. Thứ hai, và quan trọng nhất, hành vi của mkdir -pkhông phải là sự thay thế tương thích mkdirtrong mọi trường hợp.
Đặc biệt, trên hầu hết các hệ thống tập tin, mkdirlà một hoạt động nguyên tử . Nếu một chương trình chạy mkdir playgroundvà lệnh thành công, chương trình biết rằng nó đã tạo playgroundthư mục. Điều này cho phép chương trình coi thư mục mới là sân chơi độc quyền của nó: nếu một phiên bản khác của cùng một chương trình đang chạy đồng thời, lệnh gọi của nó mkdir playgroundsẽ thất bại. Thuộc tính này rõ ràng không được cung cấp bởi mkdir -pvì nó cho phép đối số tồn tại.
Nếu mkdir -pđã tồn tại từ đầu, nó có thể đã được tạo ở chế độ mặc định, giống như mkdir -avới lệnh tạo thư mục đơn. Nhưng điều đó sẽ không tuân theo triết lý thiết kế Unix thông thường: hầu hết các tiện ích cơ bản là các trình bao bọc đơn giản xung quanh các nguyên thủy cơ bản, với hành vi fancier (như tạo nhiều thư mục trong một lần) yêu cầu các tùy chọn ưa thích.
alias mkdir="mkdir -p".