আমি mkdir দিয়ে জানি আমি mkdir A B C D E F
প্রতিটি ডিরেক্টরি তৈরি করতে পারি । প্রতিটি অক্ষর বা সংখ্যা টাইপ করে আমি কীভাবে ডিরেক্টরি এজেড বা 1-100 তৈরি করতে পারি?
আমি mkdir দিয়ে জানি আমি mkdir A B C D E F
প্রতিটি ডিরেক্টরি তৈরি করতে পারি । প্রতিটি অক্ষর বা সংখ্যা টাইপ করে আমি কীভাবে ডিরেক্টরি এজেড বা 1-100 তৈরি করতে পারি?
উত্তর:
কেবলমাত্র একটি for
লুপ ব্যবহার করা এটি সবচেয়ে সহজ :
for char in {A..Z}; do
mkdir $char
done
for num in {1..100}; do
mkdir $num
done
আপনার যদিও কমপক্ষে নূন্যতম বাশ দরকার 3.0; অন্যথায় আপনার মতো কিছু ব্যবহার করতে হবেseq
{}
সিনট্যাক্স বাঁধা না ব্যাশ সিনট্যাক্স হল for
কনস্ট্রাক্ট।
mkdir {A..Z}
নিজেই যথেষ্ট।
http://www.gnu.org/software/bash/manual/bashref.html#Brace-Expansion
mkdir -p ./logs-{1..5}
আপনি আরও জটিল সংমিশ্রণগুলিও করতে পারেন (এর echo
পরিবর্তে এগুলির সাথে চেষ্টা করুন mkdir
যাতে পরে কোনও পরিষ্কার ব্যবস্থা নেই):
তুলনা করা
$ echo pre-{{F..G},{3..4},{m..n}}-post
pre-F-post pre-G-post pre-3-post pre-4-post pre-m-post pre-n-post
থেকে
$ echo pre-{F..G}{3..4}{m..n}-post
pre-F3m-post pre-F3n-post pre-F4m-post pre-F4n-post pre-G3m-post pre-G3n-post
pre-G4m-post pre-G4n-post
আপনার যদি বাশ 4 থাকে তবে চেষ্টা করুন
$ echo file{0001..10}
file0001 file0002 file0003 file0004 file0005 file0006 file0007 file0008 file0009
file0010
এবং
$ echo file{0001..10..2}
file0001 file0003 file0005 file0007 file0009
লিনাক্সে আপনি "seq" কমান্ড দিয়ে অঙ্কের ক্রম তৈরি করতে পারেন, তবে এটি সমস্ত ইউনিক্স সিস্টেমে বিদ্যমান নেই। উদাহরণস্বরূপ 1 থেকে 100 পর্যন্ত ডিরেক্টরি উত্পন্ন করার জন্য:
mkdir `seq 1 100`
আপনি অবশ্যই শেল ব্যবহারের সাহায্যে A to Z ডিরেক্টরি তৈরি করতে পারেন:
seq 65 90 \
| while read foo; do printf "%b\n" `printf '\\\\x%x\n' $foo`; done \
| xargs mkdir
কেবল পার্ল ব্যবহার করা সম্ভবত এটি অনেক কম কুশ্রী:
perl -e 'foreach (ord "A"..ord "Z") { mkdir chr $_ }'
mkdir direct{1..3}
পরিণাম ডেকে আনবে mkdir direct1 direct2 direct3
ইত্যাদি। একই জন্য{a..z}