আমি একটি নির্দিষ্ট ডিরেক্টরিতে অবস্থিত কমান্ডটি কীভাবে ব্যবহার করব?


16

আমি locateলিনাক্স- এ কমান্ডটি ব্যবহার করছি । আমার এটির বর্তমান ব্যবহার পুরো ফাইল সিস্টেমের মাধ্যমে অনুসন্ধান করে। আমি এটি কেবল একটি নির্দিষ্ট ডিরেক্টরিতে অনুসন্ধান করতে চাই। কিভাবে আমি এটি করতে পারব?


টিএলডিআর: 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
এরিক লেসচিনস্কি

উত্তর:


11

আর একটি পদ্ধতি হ'ল প্যাটার্ন মেলাতে ব্যবহার করা 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* একই ফলাফল দেয়।


3
+1 এটি সঠিক উত্তর। মনে রাখবেন যে আপনি যদি ওয়াইল্ডকার্ড অন্তর্ভুক্ত করেন তবে সীমাগুলি স্থির হয়ে যায়। উপরের উদাহরণে এটি $ locate '/usr/lib64/*tmpfile'কোনও ফলাফল দেবে না।
xofer

আপনি সহজ ওয়াইল্ডকার্ড চেয়ে আরো বেশি নিয়ন্ত্রণ চান দিতে পারবেন, আপনি সবসময় পাইপ ফলাফল করতে পারেন locateমাধ্যমে grep
লাড্ডাড্ডা

5

আপনার নির্দিষ্ট ডিরেক্টরিটির জন্য স্লোক ডাটাবেসগুলি এর সাথে তৈরি করুন:

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>

3
"সনাক্ত করুন -U" একটি অবৈধ বিকল্প ত্রুটি ছুড়ে ফেলেছে ... অনুমান করে আপনি "আপডেটডবি-ইউ" বলতে চাইছেন? এছাড়াও আপনি যদি কখনও অন্য ডিরেক্টরি অনুসন্ধান করতে চান তবে এটির জন্য একটি mlocon.db পুনর্নির্মাণ (আপডেটবি) দরকার good
gharper

ওহ, আমার জেন্টুতে এটি ঠিকঠাক কাজ করে তবে সেন্টোস এই বিকল্পটি অন্তর্ভুক্ত করে না।
কোয়ান্টা

ভোট ডাউন? আপনি একটি মন্তব্য করতে পারেন দয়া করে?
কোয়ান্টা

আপনার মতো ত্রুটি থাকলে: লিনাক্সে সাধারণ ব্যবহারকারী হিসাবে আপডেটড কমান্ড কীভাবে ব্যবহার করতে হয় তাupdatedb: can not change group of file 'db.db.kHhzFz' to 'mlocate': Operation not permitted পরীক্ষা করে দেখুন
কেনোরব

2

সবচেয়ে সহজ উত্তরটি আমি ভাবতে পারি

locate search_term | grep "/specified/directory"

"সন্ধান করুন" এবং এর পথের বিকল্পগুলি ব্যবহার করা আরও ভাল সমাধান হতে পারে ...


0

সবচেয়ে সহজ উপায় নীচের উদাহরণ হিসাবে:

updatedb -o ~/tmp.db -l0 -U $PWD
locate   -d ~/tmp.db "foo"

$PWDআপনার নির্দিষ্ট ডিরেক্টরিতে পরিবর্তন করুন ।

উপরের উদাহরণটি কেবলমাত্র নির্দিষ্ট ডিরেক্টরিতে আপনার স্থানীয় ডাটাবেস তৈরি করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.