shell - কিভাবে একটি dir ইতিমধ্যে বিদ্যমান না হলে mkdir কিভাবে?




scripting ksh (9)

-পি পতাকা ব্যবহার করুন।

man mkdir
mkdir -p foo

আমি AIX এ কর্নশেল (ksh) এর অধীনে চালানোর জন্য একটি শেল স্ক্রিপ্ট লিখছি। আমি একটি ডিরেক্টরি তৈরি করতে mkdir কমান্ড ব্যবহার করতে চাই। কিন্তু ডিরেক্টরি ইতিমধ্যে বিদ্যমান থাকতে পারে, কোন ক্ষেত্রে আমি কিছু করতে চাই না। সুতরাং আমি পরীক্ষা করতে চাই যে ডিরেক্টরীটি বিদ্যমান নেই, অথবা "ফাইল বিদ্যমান" ত্রুটিটি mkdir দিচ্ছে যখন mkdir এটি বিদ্যমান ডিরেক্টরি তৈরি করার চেষ্টা করে।

কিভাবে ভাল এই কাজ কোন চিন্তা?


mkdir উইন্ডোজ 8+ সিস্টেমগুলিতে আর-পি সুইচ সমর্থন করে না।

আপনি এই ব্যবহার করতে পারেন:

IF NOT EXIST dir_name MKDIR dir_name

আপনি যদি কোন ত্রুটি বার্তা প্রদর্শন করতে চান না:

[ -d newdir ] || mkdir newdir

আপনি যদি নিজের ত্রুটির বার্তা প্রদর্শন করতে চান:

[ -d newdir ] && echo "Directory Exists" || mkdir newdir

এই কাজ করা উচিত:

$ mkdir -p dir

বা:

if [[ ! -e $dir ]]; then
    mkdir $dir
elif [[ ! -d $dir ]]; then
    echo "$dir already exists but is not a directory" 1>&2
fi

ডিরেক্টরিটি তৈরি করবে যদি এটি বিদ্যমান না থাকে তবে আপনি যে ডিরেক্টরিটি তৈরি করার চেষ্টা করছেন সেটির নাম ইতিমধ্যে ডিরেক্টরি ছাড়া অন্য কিছু ব্যবহার করে তা আপনাকে সতর্ক করে।


এটি একটি সাধারণ ফাংশন (bash shell) যা আপনাকে অস্তিত্ব না থাকলে একটি ডিরেক্টরি তৈরি করতে দেয়।

#----------------------------------
# Create a directory if it doesn't exist
#------------------------------------
createDirectory() {
    if [ ! -d $1 ]
        then
        mkdir -p $1
    fi
}

আপনি উপরের ফাংশনটি কল করতে পারেন:

CreateDirectory / tmp / fooDir / বারডির

উপরে উপস্থিত থাকলে ফুকির ও বারদীর তৈরি হয়। Mkdir কমান্ডের "-p" বিকল্পটি নোট করুন যা পুনরাবৃত্তি করে ডিরেক্টরিগুলি তৈরি করে। আশাকরি এটা সাহায্য করবে.


ডিরেক্টরিটি বিদ্যমান কিনা তা পরীক্ষা করার জন্য আপনি লুপ ব্যবহার করতে পারেন কিনা, যদি এটি ডিরেক্টরি তৈরি করার চেয়ে ছাড় না হয়।

1) dir = / home / dir_name

if [ ! -d $dir ]
then
     mkdir $dir
else
     echo "Directory exists"  
fi

2) আপনি ডিরেক্টরি তৈরি করতে -p বিকল্পের সাথে mkdir ব্যবহার করতে পারেন। ডিরেক্টরিটি উপলব্ধ না হলে এটি পরীক্ষা করবে।

mkdir -p $dir

mkdir -p এছাড়াও ডিরেক্টরি গাছ গঠন গঠন করতে পারবেন। যদি আপনি একই কমান্ড ব্যবহার করে পিতামাতা এবং শিশু ডিরেক্টরি তৈরি করতে চান তবে mkdir -p নির্বাচন করতে পারেন

mkdir -p /home/parent_dir /home/parent_dir/child1 /home/parent_dir/child2

mkdir -p চেষ্টা করুন:

mkdir -p foo

নোট করুন যে এটি এমন কোনও মধ্যবর্তী ডিরেক্টরি তৈরি করবে যা বিদ্যমান নেই; এই ক্ষেত্রে,

mkdir -p foo/bar/baz

ডিরেক্টরিগুলি foo , foo/bar , এবং foo/bar/baz যদি তারা উপস্থিত না হয়।

মূল ডিরেক্টরিগুলি বিদ্যমান না থাকলে আপনি একটি ত্রুটি চান এবং ডিরেক্টরিটি তৈরি করতে চান যদি এটি বিদ্যমান না থাকে তবে আপনি প্রথমে ডিরেক্টরিটির অস্তিত্বের জন্য test করতে পারেন:

[ -d foo ] || mkdir foo

mkdir foo ডিরেক্টরি উপস্থিত থাকলেও কাজ করে। এটি শুধুমাত্র "Foo" নামক ডিরেক্টরি উপস্থিত থাকলেই কাজ করতে হবে, -p ফ্ল্যাগটি ব্যবহার করে দেখুন।

উদাহরণ: -

mkdir -p foo

এটি শুধুমাত্র "foo" নামক ডিরেক্টরিটি তৈরি করবে যদি এটি বিদ্যমান না হয়। :)


mkdir -p sam
  • mkdir = ডিরেক্টরি তৈরি করুন
  • -পি = - পিতামাতা
  • (বিদ্যমান থাকলে কোনও ত্রুটি নেই, প্রয়োজনীয় হিসাবে প্যারেন্ট ডিরেক্টরিগুলি তৈরি করুন)




mkdir