অবশ্যই একটি তর্ক করতে পারে যে পিতামাতুল্য ডিরেক্টরি তৈরি করা ডিফল্ট হওয়া উচিত এবং যদি পিতামাতার অস্তিত্ব না থাকে তবে ডিরেক্টরি তৈরি রোধ করতে কিছু চেক বিকল্প ব্যবহার করা যেতে পারে।
তবে কেন এটি অন্য উপায়ে রয়েছে কেবল ইতিহাস। Mkdir এর মূল সংস্করণ পিতামহিত ডিরেক্টরি তৈরি করে নি। এই কারণেই এক্স 11 ডিস্ট্রিবিউশনগুলি mkdirhier নামে একটি কমান্ড নিয়ে এসেছিল যা এই কাজটি সম্পাদন করতে সক্ষম হয়েছিল: মূল ডিরেক্টরি উপস্থিত রয়েছে কিনা তা পরীক্ষা করে দেখুন এবং প্রয়োজনীয় হলে সেগুলি তৈরি করুন।
পরে এই কার্যকারিতাটি mkdir কমান্ডে অনেকগুলি ইউনিক্স সংস্করণে যুক্ত করা হয়েছিল (আমি জানি না এটি আজকাল পসিক্স স্ট্যান্ডার্ডে আছে কিনা)। সামঞ্জস্য বজায় রাখার জন্য এই বৈশিষ্ট্যটি একটি বিকল্প পতাকা চালু করার মাধ্যমে উপলব্ধ করা হয়: -p
।
এটি ডিফল্টরূপে চালু করা খারাপ কেন? স্ক্রিপ্টগুলি পিতা-মাতার ডিরেক্টরি উপস্থিত না থাকলে mkdir ব্যর্থ হওয়ার উপর নির্ভর করতে পারে। বিশেষত ব্যবহারকারী রুট হিসাবে এটি ডিফল্টরূপে ডিরেক্টরি ট্রি তৈরি করা বিপজ্জনক হতে পারে।
উদাহরণ:
if mkdir /backup/$(uname -n)/$(date +%Y%m%d)
then
perform_backup ...
এই উদাহরণে ডিরেক্টরিটি তৈরি হবে এবং ব্যাকআপটি সম্পাদিত হবে এমনকি ফাইল সিস্টেমটি /backup
মাউন্ট করা হয়নি এবং পিতামাতার /backup/$(uname -n)
অস্তিত্ব নেই যদি অন্যদিকে ডিফল্টটি অন্যভাবে হয়ে থাকে।
থাম্বের বিধি: কোনও সরঞ্জামের ডিফল্ট আচরণ পরিবর্তন না করা ভাল অনুশীলন। যদি ইচ্ছা হয় তবে ডিফল্ট আচরণ পরিবর্তন করার জন্য বিকল্পগুলি সরবরাহ করুন।
alias mkdir="mkdir -p"
।