পুনরাবৃত্তভাবে ব্যাশ ব্যবহার করে কীভাবে অস্তিত্বহীন সাব-ডিরেক্টরিগুলি তৈরি করবেন?


191

আমি একটি দ্রুত ব্যাকআপ স্ক্রিপ্ট তৈরি করছি যা একটি সুন্দর / ঝরঝরে ডিরেক্টরি কাঠামোর মধ্যে কিছু ডেটাবেস ডাম্প করবে এবং আমি বুঝতে পেরেছি যে ডিরেক্টরিগুলি তৈরি করার আগেই এটির উপস্থিতি রয়েছে কিনা তা নিশ্চিত করার জন্য আমার পরীক্ষা করা দরকার। আমার কোডটি কাজ করে তবে মনে হয় এটি করার আরও ভাল উপায় আছে। কোনও পরামর্শ?

[ -d "$BACKUP_DIR" ] || mkdir "$BACKUP_DIR"
[ -d "$BACKUP_DIR/$client" ] || mkdir "$BACKUP_DIR/$client"
[ -d "$BACKUP_DIR/$client/$year" ] || mkdir "$BACKUP_DIR/$client/$year"
[ -d "$BACKUP_DIR/$client/$year/$month" ] || mkdir "$BACKUP_DIR/$client/$year/$month"
[ -d "$BACKUP_DIR/$client/$year/$month/$day" ] || mkdir "$BACKUP_DIR/$client/$year/$month/$day"

উত্তর:


430

আপনি -pপ্যারামিটারটি ব্যবহার করতে পারেন যা নথিভুক্ত রয়েছে :

-পি, - প্যারেন্টস

কোন ত্রুটি বিদ্যমান থাকলে, প্রয়োজন হিসাবে পিতামাতার ডিরেক্টরি তৈরি করুন

তাই:

mkdir -p "$BACKUP_DIR/$client/$year/$month/$day"

30
@ বারমার্গুলিস - পবিত্র বোকা যা আমি ভাবার চেয়ে সহজ সরল ছিল = পি
টোফার ফ্যাঙ্গিও

আপলোড করা হয়েছে কারণ আপনি মুছে ফেলার একটি বিশেষজ্ঞ। উফ, ইতিমধ্যে প্রায় এক বছর আগে করেছেন!
অ্যারন হল

ব্যবহারকারী যদি
বিরতিযুক্ত

1
alias mkdirs=mkdir -p
ডাঃ জেরি 19


14

বিদ্যমান উত্তরগুলি অবশ্যই উদ্দেশ্যটির সমাধান করে, যদি আপনি দুটি ভিন্ন উপ-ডিরেক্টরিতে নেস্টেড ডিরেক্টরি কাঠামোর প্রতিলিপি তৈরি করতে চান তবে আপনি এটি করতে পারেন

mkdir -p {main,test}/{resources,scala/com/company}

এটি যে ডিরেক্টরি থেকে আহ্বান করা হয়েছে সেখান থেকে নিম্নলিখিত ডিরেক্টরি কাঠামো তৈরি করবে

├── main
   ├── resources
   └── scala
       └── com
           └── company
└── test
    ├── resources
    └── scala
        └── com
            └── company

এসবিটি ডিরেক্টরি কাঠামো তৈরির জন্য উদাহরণটি এই লিঙ্ক থেকে নেওয়া হয়েছিল


9
আপনি কী ব্যাখ্যাতে পারেন তা {...,...}বাশতে রয়েছে এবং কেন আপনার কাজটি বোঝায়। ব্রেস সম্প্রসারণের একটি সংক্ষিপ্ত বিবরণ অন্যান্য ব্যবহারকারীর পক্ষে উপকারী হবে। একটি "আপনি এটি করতে পারেন" এবং "এটি" পেতে কল্পনাটিকে কিছুটা ছেড়ে দেয়।
ডেভিড সি র্যাঙ্কিন

আমি @ ডেভিডসি.র্যাঙ্কিনের সাথে একমত এই উত্তরটি নিখুঁত আইএমএইচও, তবে বন্ধনীর স্বরলিপিটি আসলে কী করে তা বোঝানো দরকার।
দেলালী

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.