লিনাক্সে 'সনাক্তকরণ' এবং 'সন্ধান' এর মধ্যে পার্থক্য কী?


41

লিনাক্সে কেন এত দুটি একই কমান্ড আছে? এবং সাধারণত তাদের প্রতিটি ব্যবহারের পরিস্থিতি কী?


6
গভীরতা এবং সম্পূর্ণতা উভয়ই ভাল উত্তর জন্য, ইউনিক্স এবং লিনাক্সএই উত্তর দেখুন ।
ব্রাজিলিয়ান গাই

উত্তর:


38

findবাস্তব সিস্টেমে অনুসন্ধান করে। ধীর হলেও সর্বদা আপ-টু-ডেট রয়েছে এবং আরও বিকল্প রয়েছে (আকার, পরিবর্তনের সময়, ...)

locateপূর্বে নির্মিত ডাটাবেস (কমান্ড updatedb) ব্যবহার করে। অনেক দ্রুত, তবে একটি 'পুরানো' ডাটাবেস ব্যবহার করে এবং কেবলমাত্র নাম বা সেগুলির অংশ অনুসন্ধান করে।

যাই হোক না কেন, man findএবং man locateআপনাকে আরও সাহায্য করবে।


1
... এবং updatedbমোটামুটিভাবে কিছু পছন্দ find / -type f | gzip > locate.gz
এফ হৌরি

10
unix.stackexchange.com/questions/60205/… আরও বিস্তারিতভাবে এই প্রশ্নের উত্তর দেয়।
বাদামি ন্যাটি প্রায়

3

কমান্ড locateএবং findকমান্ড উভয়ই একটি ফাইল সন্ধান করবে তবে তারা বেশ ভিন্ন উপায়ে কাজ করে।

locate অফলাইন মোডে কাজ করবে:

  • একটি সাধারণ ব্যাখ্যার জন্য, স্লোকট নামক ইউনিক্স সিস্টেমে ফাইল ইনডেক্সিং ডাটাবেসটি ইউনিক্স সিস্টেমের সাথে পাঠানো সমস্ত ফাইলের অবস্থানের তালিকা প্রদর্শন করবে। আপনি যখন মৃত্যুদন্ড কার্যকর করেন locate, এটি কোনও নির্দিষ্ট ফাইল অনুসন্ধান করার জন্য এটি ডাটাবেস ব্যবহার করবে। সঙ্গে সমস্যা locateআপনি শুধুমাত্র একটি ফাইল যা আপনি এখন অনুসন্ধান করতে চান নির্মিত যদি হয় সনাক্ত কাজ না, কারণ হবে slocate ডাটাবেসের আপ-টু-ডেট নয়। এই সমস্যাটি কাটিয়ে উঠতে আপনি স্লোক ডাটাবেস updatedbআপডেট করতে ব্যবহার করতে পারেন । আবার কার্যকর করা এখন সদ্য নির্মিত ফাইলটি খুঁজে পাবে। সুতরাং, অনেক লিনাক্স সিস্টেম অ্যাডমিনিস্ট্রেটররা নিয়মিতভাবে স্লোক ডাটাবেস আপডেট করার জন্য একটি চাকরী ব্যবহার করেন ।locatecron

find একটি অনলাইন / "রিয়েল টাইমে" মোডে কাজ করবে।

  • এটি নির্দিষ্টভাবে নির্দিষ্ট ফাইলটি খুঁজতে সমস্ত ডিরেক্টরি অনুসন্ধান করবে এবং এটি প্রতিটি ফাইলকে একে একে পরীক্ষা করে নিবে। অতএব, এর জন্য প্রচুর I / O কল প্রয়োজন।

সুতরাং প্রকৃতির উপর ভিত্তি করে, এটি স্পষ্ট যে অবস্থানটি অনুসন্ধানের চেয়ে দ্রুত কিন্তু অনুসন্ধানটি আসল সময়।

আশা করি এটি ধারণাটি পরিষ্কার করতে সহায়তা করবে। শুভকামনা. :)


0

locate কেবল এটির ডাটাবেস দেখায় এবং ফাইলের অবস্থানের প্রতিবেদন করে।

find এটি একটি ডাটাবেস ব্যবহার করে না, এটি সমস্ত ডিরেক্টরি এবং তাদের উপ ডিরেক্টরিগুলি ট্র্যাভার করে এবং প্রদত্ত মানদণ্ডের সাথে মেলে এমন ফাইলগুলির সন্ধান করে।


0

সন্ধানের ব্যবহারের বিকল্প হ'ল সনাক্তকরণ কমান্ড। এই কমান্ডটি প্রায়শই দ্রুত হয় এবং সহজেই পুরো ফাইল সিস্টেমটি অনুসন্ধান করতে পারে। আপনি কমান্ডটি অ্যাপটি-গেট দিয়ে ইনস্টল করতে পারেন:

sudo apt-get update
sudo apt-get install mlocate

কারণ অনুসন্ধানের চেয়ে দ্রুততর কারণ এটি ফাইল সিস্টেমের ফাইলগুলির একটি ডাটাবেসের উপর নির্ভর করে। ডাটাবেসটি সাধারণত ক্রোন স্ক্রিপ্টের সাথে দিনে একবার আপডেট করা হয় তবে আপনি টাইপ করে এটি ম্যানুয়ালি আপডেট করতে পারেন:

sudo updatedb

এখন এই আদেশ চালান। মনে রাখবেন, আপনি সম্প্রতি অর্জিত বা নির্মিত ফাইলগুলি সন্ধান করতে চাইলে ডাটাবেসটি সর্বদা আপ টু ডেট থাকে।

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