ব্যবহার find
এই কাজ করা উচিত:
find /dir -not -name "dir" -maxdepth 1 -type d -exec zip -r '{}.zip' '{}' \;
আমি কিভাবে আছে নোট /dir
প্রধান হিসাবে find
পথ কিন্তু আছে -not -name "dir"
যাতে প্যারেন্ট ডিরেক্টরি সংরক্ষণাগার হয় না। পরবর্তী আমরা গভীরতা সীমাবদ্ধ find
সঙ্গে স্ক্যান করুন -maxdepth 1
যার অর্থ find
শুধুমাত্র পথ অবিলম্বে শিশুদের জন্য অনুসন্ধান করবে /dir
। তারপরে, আমরা শুধুমাত্র ডিরেক্টরিগুলির সাথে কাজ করতে ভুলবেন না -type d
। এবং অবশেষে আমরা ব্যবহার -exec
ঐন্দ্রজালিক চালানোর জন্য zip
কমান্ড যা এটি খুঁজে বার করে সমস্ত ডিরেক্টরি কম্প্রেস করবে; {}
শুধু ডিরেক্টরির নাম নিজেই সমান।
আরেকটি কৌশল ব্যবহার করা হবে -mindepth 1
পরিবর্তে -not -name "dir"
শুধুমাত্র পিতা বা মাতা একটি nested ডিরেক্টরি ক্ষেত্রে /dir
কাঠামো যেকোনোভাবে নাম দ্বারা যায় /dir
বা তার নামের অংশ হিসাবে "dir" আছে:
find /dir -mindepth 1 -maxdepth 1 -type d -execdir echo {} \;
এখন যারা জিপ আর্কাইভ তৈরি করবে যা সম্পূর্ণ বিস্তৃত হবে /dir
পথ; /dir/EqcWTG
, /dir/SomeDirectoryName
, /dir/3435346
, ইত্যাদি ... আপনি যদি একা / আপেক্ষিক জিপ আর্কাইভগুলি ব্যবহার করতে চান তবে আপনি এটি ব্যবহার করতে পারেন -execdir
পরিবর্তে -exec
এটার মত:
find /dir -not -name "dir" -maxdepth 1 -type d -execdir zip -r '{}.zip' '{}' \;
একই -execdir
ধারণা, কিন্তু সঙ্গে -mindepth 1
পরিবর্তে -not -name "dir"
:
find /dir -mindepth 1 -maxdepth 1 -type d -execdir zip -r '{}.zip' '{}' \;
থেকে -execdir
বাহিনী find
প্রকৃত নির্দেশিকায় কাজ করার জন্য কমান্ডটি সম্পূর্ণ পাথের পরিবর্তে কিছু খুঁজে পেয়েছে - সেই কমান্ডটি একইভাবে নামযুক্ত ZIP সংরক্ষণাগার তৈরি করবে যা নামযুক্ত সম্পর্কিত ডিরেক্টরিগুলিতে বিস্তৃত হবে EqcWTG
, SomeDirectoryName
, 3435346
, ইত্যাদি ... তবে আবার, চূড়ান্ত ব্যবহার / বিকল্পগুলি আপনি চয়ন করুন আপনার চূড়ান্ত ZIP সংরক্ষণাগারগুলির প্রয়োজনীয়তার উপর নির্ভর করে।
/dir
ব্যবহার করে-mindepth 1
, যদি উপড্রাইরেক্টরীগুলির মধ্যে একটি পিতামাতার একই নাম থাকে।