উত্তর:
আর একটি পদ্ধতি হ'ল প্যাটার্ন মেলাতে ব্যবহার করা locate
:
locate '/some/directory/*filename*'
নীচের কমান্ডগুলির আউটপুট তুলনা করুন:
$ locate tmpfile
/usr/lib64/perl5/auto/POSIX/tmpfile.al
/usr/share/man/fr/man3/tmpfile.3.gz
/usr/share/man/ja/man3/tmpfile.3.gz
/usr/share/man/man3/tmpfile.3.gz
/usr/share/man/man3p/tmpfile.3p.gz
$
$ locate '/usr/lib64/*tmpfile*'
/usr/lib64/perl5/auto/POSIX/tmpfile.al
$
locate /usr/lib*tmpfile*
একই ফলাফল দেয়।
$ locate '/usr/lib64/*tmpfile'
কোনও ফলাফল দেবে না।
locate
মাধ্যমে grep
।
আপনার নির্দিষ্ট ডিরেক্টরিটির জন্য স্লোক ডাটাবেসগুলি এর সাথে তৈরি করুন:
updatedb -U /path/to/directory
এবং এর সাথে অনুসন্ধান করুন:
locate <search_string>
হালনাগাদ
এটি আমার জেন্টু সিস্টেমে সূক্ষ্মভাবে কাজ করে তবে সেন্টোস -U
বিকল্পটি অন্তর্ভুক্ত করে না । সুতরাং, আপনি পরিবর্তে নীচে চেষ্টা করতে পারেন:
এর সাথে ডাটাবেস তৈরি করুন:
# updatedb -U /path/to/dir -o dir_locate.db
এবং অনুসন্ধান:
# locate -d dir_locate.db <search_string>
updatedb: can not change group of file 'db.db.kHhzFz' to 'mlocate': Operation not permitted
পরীক্ষা করে দেখুন ।
locate
নির্দিষ্ট ডিরেক্টরিতে সন্ধানের জন্য এখানে একটি টার্মিনাল ওরফে রয়েছে :alias my_locate="updatedb -U /path/to/yourdir -o /path/to/your_dir_locate.db; locate -d /path/to/dir_locate.db "
একবার উপনামটি কার্যকর হয়ে গেলে টার্মিনাল টাইপ করুনmy_locate *foo*
এবং আপনি ঘোড়দৌড়ের দিকে চলে যান। আপনি ডাটাবেস আপডেটগুলি একত্রিত করতে এবং কোলন চরিত্রটি ব্যবহার করে ডেটাবেসগুলিতে সন্ধান করতে পারেন। rtfm: linux.die.net/man/8/updatedb