উত্তর:
প্রত্যক্ষ সমতুল্য
find . -iname <filename>
যা <filename>বর্তমান ডিরেক্টরি এবং যেকোন উপ- ডিরেক্টরিতে ডাকা সমস্ত ফাইল এবং ডিরেক্টরি তালিকাভুক্ত করবে , কেস উপেক্ষা করে।
যদি আপনার সংস্করণের সন্ধানটি সমর্থন না করে তবে -inameআপনি তার -nameপরিবর্তে ব্যবহার করতে পারেন । মনে রাখবেন যে বিপরীত -iname, -nameকেস সংবেদনশীল।
আপনি যদি ডিরেক্টরি হিসাবে না শুধুমাত্র ডাকা ফাইলগুলি তালিকাবদ্ধ করতে চান <filename>তবে যুক্ত করুন-type f
find . -iname <filename> -type f
আপনি যদি ওয়াইল্ডকার্ড ব্যবহার করতে চান তবে আপনার চারপাশে উদ্ধৃতি স্থাপন করা দরকার, যেমন
find . -iname "*.txt" -type f
অন্যথায় শেল এটি প্রসারিত করবে।
অন্যরা যেমন নির্দেশ করেছে, আপনি এটিও করতে পারেন:
find . | grep "\.txt$"
grep নিয়মিত প্রকাশের উপর ভিত্তি করে লাইনগুলি মুদ্রণ করবে, যা ওয়াইল্ডকার্ডের চেয়ে আরও শক্তিশালী, তবে আলাদা সিনট্যাক্স রয়েছে।
দেখুন man findএবং man grepআরও বিশদ জন্য।
<filename>কমান্ড-লাইন পরিবেশে ব্যবহারকারী ইনপুট জন্য চিহ্নিতকারী হিসাবে ব্যবহার করা একটি খারাপ অভ্যাস, যেখানে < and >বেশিরভাগ সময় সুনির্দিষ্ট অর্থ থাকে। আমি কেবল এটি ব্যবহার করার পরামর্শ দিচ্ছি filename, সম্ভবত এটির উপর জোর দেওয়া FILENAME। বেশিরভাগ লোকেরা বুঝতে পারবেন, এবং যারা, যাঁরা তা করবেন না তারা যখন বুঝতে না পারছেন যে তারা ক্ষতির চেয়ে কম বা তার চেয়ে বড় চিহ্নটিকে আঘাত করার কথা নয় তখন তাদের ক্ষতি হতে পারে।
<filename>অনেকগুলি ইউনিক্স ডকুমেন্টেশনের একটি কনভেনশন, তাই আমি মনে করি এটি সম্পর্কে লোকেদের সচেতন করা কার্যকর তবে আমি সম্মত FILENAMEহতে পারি এটি বুঝতে সহজ হতে পারে।
find -iname <filename>ডস-এর মতো কেস-সংবেদনশীল হওয়ার কারণে এটি আরও ভাল
কিছু শেল অনুমতি দেয় ls **/filename, যা বেশ সুবিধাজনক।
shopt -s globstar; echo **/filenameসমান find . -name "filename"। এটি zsh এও কাজ করে।
shopt -s globstarএটি করেন তবে এটি সম্ভবত আপনার পক্ষে কাজ করবে। রিকার্সিভ গ্লোববিং এমন একটি বৈশিষ্ট্য যা কেবলমাত্র কয়েকটি শেলগুলিতে পাওয়া যায় এবং কখনও কখনও এটি ডিফল্টরূপে চালু হয় না।
shoptকমান্ডটি বিকল্পটি সক্ষম করে globstar on। এখন এটি একটি যাদুমন্ত্র মত কাজ করে। অনেক ধন্যবাদ.
আপনি এটি দিয়ে এটি করতে পারেন
find . | egrep filename
find . -regextype posix-egrep -regex '.*filename.*'( egrepঅংশটি গুরুত্বপূর্ণ কিনা তা আমি জানি না , তবে আপনি egrepনিজের উত্তরে ব্যবহার করেছিলেন তাই আমি এটি অন্তর্ভুক্ত করেছি)
grepনিয়মিত এক্সপ্রেশন ব্যবহার করে, যখন ডস কমান্ড শেল ওয়াইল্ডকার্ড ব্যবহার করে।
find . -name "*.*"ডস ব্যাকগ্রাউন্ড থেকে আপনি যা চান তা করবে না। গ্লোবগুলি চেনার জন্য যথেষ্ট নিকটবর্তী, যদিও, রেজিক্সগুলি সম্পূর্ণ নতুন জন্তু।
*.*.*একটি আধুনিক ডস অর্থাৎ উইন্ডোজ cmd না? কি হবে *.*.*.*?
এটিও হতে পারে: tree -if </your/path>বা 'pwd'একটি পথ হিসাবে
<filename>ওয়াইল্ডকার্ড থাকে তবে এর চারপাশে উদ্ধৃতি ব্যবহার করুন, উদাহরণস্বরূপfind . -name '*.txt'।