উত্তর:
এর জন্য কোঁকড়া ধনুর্বন্ধনী ব্যবহার করুন:
ls /opt/somedir/{aa,bb,cc}
আরও তথ্যের জন্য বন্ধনী সম্প্রসারণ সম্পর্কে পড়ুন ।
বাশের অধীনে, চালান shopt -s extglob
(বা এটি আপনার রাখুন ~/.bashrc
), এবং আপনি অতিরিক্ত নিদর্শনগুলি ব্যবহার করতে পারেন যা কোনও অস্বাভাবিক বাক্য গঠন (কেএসএস থেকে উত্তরাধিকারসূত্রে) দিয়ে নিয়মিত অভিব্যক্তি সরবরাহ করে। আপনিও অবশ্যই পর zsh এছাড়াও ksh মধ্যে এইসব নিদর্শন ব্যবহার করতে পারেন, এবং setopt ksh_glob
।
$ shopt -s extglob
$ ls /opt/somedir/@(aa|bb|cc|doesnotexist)
/opt/somedir/aa /opt/somedir/bb /opt/somedir/cc
Zsh এ, আপনি সরাসরি (foo|bar)
একটি প্যাটার্ন হিসাবে ব্যবহার করতে পারেন ।
% ls /opt/somedir/(aa|bb|cc|doesnotexist)
/opt/somedir/aa /opt/somedir/bb /opt/somedir/cc
লক্ষ্য করুন যে কমান্ডটি পুরো পথ সহ কল করা হয়েছে। যদি আপনি একটি সংক্ষিপ্ত পথ দিয়ে কমান্ডটি কল করতে চান, আপনাকে কোনওরকম ডিরেক্টরি পরিবর্তন করতে হবে এবং (cd /opt/somedir && somecommand aa bb cc)
এটি এখন পর্যন্ত সবচেয়ে সহজ উপায়।
আপনি এটি ব্যবহার করে ফিল্টার করতে পারেন egrep
:
ls | egrep '(aa|bb|cc)'
সমস্ত পাঠ্য ফাইল সন্ধান করতে:
ls | egrep '(aa|bb|cc).txt'
: প্রথম, আমি তোমাকে সরাসরি কখনো পার্স ম , কি কখনো । আপনি যা চান তা করতে সঠিক, এবং ক্যানোনিকাল পথ সঙ্গে হয় খোঁজ ।
উদাহরণ স্বরূপ:
find /opt/somedir -regex '.*[aa|bb|cc].*' -exec mv '{}' ~/backup \;
আমি সাধারণত এটি সহজ হিসাবে -name
পরিবর্তে ব্যবহার করি -regex
। তবে একটি রেজেক্স আপনার ব্যবহারের ক্ষেত্রে ফিট করে। আপনি যে ফাইলটি সরানো / মুছে ফেলতে চান তা প্রকৃতপক্ষে তা নিশ্চিত করার জন্য আপনার প্রথম বার না করে কমান্ডটি চালানো উচিত -exec
।