উত্তর:
আপনার বর্তমান স্ক্রিপ্টটি কেবলমাত্র দশমিক মান ব্যবহার করে - এটি স্পষ্টতই অগ্রণী শূন্য ছাড়াই মানটিতে অনুবাদ করে।
আপনাকে নেতৃস্থানীয় শূন্যগুলি সহ 4 টি অক্ষরের দৈর্ঘ্যে স্ট্রিং প্যাড করতে হবে। আপনি প্রিন্টফ ``কলটির ফলাফল পেতে ব্যাকটিক্স ব্যবহার করে এটি করেন printf %04d $j।
ফলস্বরূপ, আপনার সম্পূর্ণ কমান্ড থাকা উচিত:
for i in *.jpg; do let j+=1; mkdir `printf %04d $j`; done
উত্স: স্ট্যাকওভারফ্লো: বাশ - একটি স্ট্রিংয়ের শূন্যে জিরো
(আপনি যদি আরও গভীরতর সমাধান চান তবে অবশ্যই এই প্রশ্নের আরও উত্তরগুলি দেখুন, তবে এটি অবশ্যই ব্যবহারের ক্ষেত্রে পুরোপুরি কার্যকর হয়))
ব্যাশ ব্যবহার করে, আপনার সেরা বিকল্পটি হ'ল:
mkdir {0001..0666}
নামের সাথে ডায়ার তৈরি 0001করতে 0666(শূন্য প্যাডিং সহ)।
আপনি ডিরেক্টরি চান নামে prefix0001suffix, prefix0002suffix... তারপর:
mkdir prefix{0001..0666}suffix
করব.
আপনি যদি শুধুমাত্র বিজোড় সংখ্যা ডিরেক্টরি নাম চান
mkdir {0001..0666..2}
এবং তাই ... দেখুন বন্ধনী সম্প্রসারণ মধ্যে bashসহায়িকা ।
ফেচিংগার যেমন উল্লেখ করেছেন, আপনাকে ডিরেক্টরিগুলির সংখ্যা আগে থেকেই জানতে হবে। আপনি যদি এমন একটি সমাধান চান যা আপনার নিকটতম, তবে সত্যই নিরাপদ এবং আরও আধুনিক বাশ আইডিয়াম ব্যবহার করে:
for i in *.jpg; do ((++j)); mkdir $(printf "%04d" $j) ; done