উত্তর:
আপনি যদি সমস্ত সম্ভাব্য সংমিশ্রণ চান তবে ব্যবহার করুন:
for i in *.[Pp][Nn][Gg]; do
অথবা
shopt -s nocaseglob
for i in *.png; do
যদিও এটি আপনার স্ক্রিপ্টের সমস্ত শেল গ্লোব (যেমন ওয়াইল্ডকার্ড ফাইল ম্যাচ) কেস চালা না করা পর্যন্ত সংবেদনশীল করে তুলবে shopt -u nocaseglob
।
আপনি যদি সত্যিই কেবল .PNG এবং .png চান (এবং না, উদাহরণস্বরূপ .PNG বা .pnG), তবে যে কোনওটি ব্যবহার করুন
shopt -s nullglob
for i in *.png *.PNG; do
অথবা
for i in *.png *.PNG; do
[[ -e "$i" ]] || continue
... নালগ্লোব বা অস্তিত্ব পরীক্ষা করার কারণ হ'ল যদি আপনার কাছে কেবল ছোট হাতের বা একমাত্র বড় হাতের এক্সটেনশান থাকে তবে এটি ফাইলের তালিকায় তুলনাহীন প্যাটার্নটি অন্তর্ভুক্ত করবে, যার ফলে লুপটির শরীরে একটি ত্রুটি ঘটবে। নোকাসেগ্লোব হিসাবে, আপনি পরে নাল্ল্লোব শেল বিকল্পটি বন্ধ করতে চাইতে পারেন (যদিও আমার অভিজ্ঞতায় নালগ্লোব চালু থাকা প্রায়শই ভাল হয়, বিশেষত স্ক্রিপ্টে)। আসলে, আমি বরং এটির মতো সমস্ত ফাইল ম্যাচের জন্য নোকাসেগ্লোব বা অস্তিত্ব চেক ব্যবহার করা ভাল ধারণা হিসাবে বিবেচনা করি, কেবল কোনও মিল নেই।
আপনি কিছু ওয়ান-লাইনার ব্যবহার করে দেখতে পারেন
খুঁজে। -নাম "* .পিএনজি"-এক্সেক ....
অথবা
খুঁজে। -নাম "* .পিএনজি" | xargs ....
পুনরাবৃত্তি সম্পর্কে নীচে @ ইয়াবার মন্তব্যও সম্পাদনা করুন ।
find -maxdepth 1 -iname "*.png"
ls
এখানে প্রায় অকেজো কিন্তু রেকর্ডের জন্য এখানে আপনার প্রচেষ্টার কাছাকাছি একটি বাক্য গঠন রয়েছে:
for i in $(ls *.PNG ; ls *.png)
নোট:
for i in *.{png,PNG}