টার্মিনাল থেকে সহজেই টাইপ করা যায় এমন এক-লাইনার:
for f in *.md; do mv "$f" "test - $f"; done
অথবা সেমিকোলন ব্যবহারের পরিবর্তে পৃথক রেখায় পুনরায় লিখিত:
for f in *.md
do
mv "$f" "test - $f"
done
উদ্ভাস
এর সিনট্যাক্স for(ইন sh):
for NAME [in WORDS ... ] ; do COMMANDS; done
এখানে, আমাদের NAMEহয় fএবং আমাদের WORDSবর্তমান ডিরেক্টরী ম্যাচিং সমস্ত ফাইল *.md। সুতরাং ভেরিয়েবলটি $fপ্রতিটি ফাইলের সাথে মিলে যাবে *.md।
সুতরাং জন্য a.md:
mv "$f" "test - $f"
হয়ে
mv "a.md" "test - a.md"
উদ্ধৃতিগুলি গুরুত্বপূর্ণ কারণ প্রতিটি ফাইলের $fনামেই ফাঁকা স্থান থাকতে পারে। অন্যথায় mvপ্রতিটি শব্দ পৃথক ফাইল বলে মনে করবে। উদাহরণস্বরূপ, যদি কোনও উদ্ধৃতি না থাকে, এবং একটি ফাইল বলা হয় Foo Bar.md, এটি এটি অনুবাদ করবে:
mv Foo Bar.md test - Foo Bar.md
যা ইচ্ছাকৃতভাবে কাজ করবে না। তবে $fউদ্ধৃতিগুলিতে মোড়ক দিয়ে তা বোঝায়:
mv "Foo Bar.md" "test - Foo Bar.md"
এর বাক্য গঠনটি উল্লেখ করে for, আপনি *.mdপ্রতিটি ফাইলের একটি নির্দিষ্ট করে নাম উল্লেখ করে একটি উপসেটটির নাম পরিবর্তন করতে পারেন :
for f in a.md b.md d.md; do mv "$f" "Test - $f"; done
বা শেল প্রসার ব্যবহার করে:
for f in {a,b,d}.md; do mv "$f" "Test - $f"; done