লিনাক্সের মধ্যে এবং এটির মধ্যে পার্থক্য


27

লিনাক্স locateএবং এর whichমধ্যে পার্থক্য কী ?

আমি যখন ব্যবহার করি তখন কেন locate mentorএটি সমস্ত পরামর্শদাতার তালিকা তৈরি করে তবে আমি যখন which mentorএটি ব্যবহার করি তখন "কোনও পরামর্শদাত ... না" বলে - এর অর্থ কী?


এই সম্পর্কিত দেখুন unix.stackexchange.com/a/60208/84427
শ্লেষ

এছাড়াও আছে whereএবং whereis
জান তোজনার

ব্যাশ এ, পছন্দ করা: type -all acommand। এবং যদি আমি আপনার প্রশ্নের পিছনে XYProblem পড়ে: আপনার একটি আদেশ আছে, আপনি এটি সনাক্তের মাধ্যমে দেখতে পারেন, তবে এটি কার্যকর করতে পারবেন না? তারপরে পাথ সম্পাদনা করুন, হয় আপনার নির্দিষ্ট ব্যবহারকারীর ~/.profileফাইলে, অথবা আপনি যদি নিশ্চিত হন যে আপনি কী করতে চান তা বিশ্বব্যাপী /etc/profileফাইলে [সতর্কতা: আপনি যদি ভুল পথ যোগ করেন তবে সিস্টেম স্ক্রিপ্টগুলি (এবং সম্ভবত অনেকগুলি ওএস) ভঙ্গ করতে পারেন / ইত্যাদি / প্রোফাইলের $ পাথ ... (উদাহরণস্বরূপ: কমান্ড সম্বলিত পাথগুলি সাধারণত কোথাও পাওয়া যায়)। ভেরিয়েবলের শেষে কেবল যুক্ত করা পছন্দ করুন। আর দিল কি দয়া ::বা . সেই পথ যে কোন জায়গায়।
অলিভিয়ার ডুলাক

উত্তর:


45

মধ্যে পার্থক্য কি locateএবং which?

locate ফাইলটি সনাক্ত করতে পূর্বে নির্মিত ডাটাবেস ব্যবহার করে।

locateupdatedb(8) দ্বারা প্রস্তুত এক বা একাধিক ডাটাবেস পড়ে এবং PATTERN গুলির মধ্যে কমপক্ষে একটিকে স্ট্যান্ডার্ড আউটপুটে, প্রতি লাইনে একের সাথে মেলে ফাইলের নাম লেখেন।

উত্স সনাক্তকরণ (1) - লিনাক্স ম্যান পৃষ্ঠা

updatedblocate(1) দ্বারা ব্যবহৃত একটি ডেটাবেস তৈরি বা আপডেট করে । যদি ডেটাবেস ইতিমধ্যে বিদ্যমান থাকে তবে এর ডেটাগুলি পুনরায় পড়া ডিরেক্টরিগুলি পরিবর্তন করা এড়ানোর জন্য পুনরায় ব্যবহার করা হয় যা পরিবর্তন হয়নি।

updatedbসাধারণত cronডিফল্ট ডাটাবেস আপডেট করার জন্য (8) দ্বারা প্রতিদিন চালানো হয় ( /var/lib/mlocate/mlocate.db)

উত্স আপডেটডব (8) - লিনাক্স ম্যান পৃষ্ঠা page


whichPATHপরিবেশগত পরিবর্তনশীল ডিরেক্টরিতে এটি অনুসন্ধান করে একটি এক্সিকিউটেবল ফাইলের সন্ধান করে ।

whichএক বা একাধিক যুক্তি লাগে। এর প্রতিটি আর্গুমেন্টের stdoutজন্য এটি এক্সিকিউটেবলের পুরো পথে প্রিন্ট করে যা কার্যকর করা হত যখন এই তর্কটি শেল প্রম্পটে প্রবেশ করা হত। এটি পরিবেশের ভেরিয়েবলের তালিকাভুক্ত ডিরেক্টরিতে এক্সিকিউটেবল বা স্ক্রিপ্ট অনুসন্ধান করে এটি করে PATH

bash(1) হিসাবে একই অ্যালগরিদম ব্যবহার করে ।

উত্স যা (1) - লিনাক্স ম্যান পৃষ্ঠা


locate mentorপরামর্শদাতার তালিকাবদ্ধ করে, তবে which mentorবলে "" কোনও পরামর্শদাতা এর মধ্যে নেই ... "

ওটার মানে কি?

আপনার কাছে কিছু ফাইল রয়েছে mentorযা locateডাটাবেসে পাওয়া যাবে ।

আপনি একটি এক্সিকিউটেবল ফাইল বা স্ক্রিপ্ট নামে হবে না mentorআপনার PATH


2
"আপডেটডাব" - এটি কেবল মাইক্রোসফ্ট নয় যে জিনিসগুলির জন্য অতিরিক্ত অ-নির্দিষ্ট নাম নিয়ে আসে তা জেনে রাখা ভাল। (উইন DeleteObjectCloseHandleupdatedblocate
32 এ

"যা" আপনার ইভেন্টের বিভিন্ন স্থানে একই প্রোগ্রামের একাধিক সংস্করণে লাথি মারতে পারে সে ক্ষেত্রে এটি বিশেষভাবে কার্যকর, তাই এটি আপনাকে জানায় যে আপনি কমান্ডটি চালানোর সময় কোনটি বাস্তবায়িত হয়। অপ্রত্যাশিত আচরণ নির্ণয়ের আগে এটি আমার পক্ষে সহায়ক ছিল - উদাহরণস্বরূপ, এটি আমাকে বুঝতে সাহায্য করেছিল যে আমি আমার সিস্টেমে কোনও ইউটিলিটির একটি ম্যানুয়ালি ইনস্টল করা সংস্করণ রেখেছি যেমন এটি প্যাকেজ ম্যানেজারের দ্বারা ইনস্টল হওয়া সংস্করণটিকে ওভাররাইড করে।
কারার্স

11

whichকমান্ড খোজা (হয় whichফাইল / সংযোগগুলি যা বর্তমান পরিবেশে কার্যকর করা হবে একটি পাথ নাম ফেরৎ)

locateনাম অনুসারে ফাইলগুলি সন্ধান করা ( locateপ্রস্তুতকৃত এক বা একাধিক ডাটাবেস পড়ে updatedbএবং কমপক্ষে একটি স্ট্যান্ডার্ড আউটপুটে প্রতি প্যাটার্নের সাথে মিলিত ফাইলের নাম লেখেন, প্রতি লাইনে একটি)


2
দয়া করে আপনার উত্সগুলির জন্য বিশিষ্টতা সরবরাহ করুন - আপনার উত্তরের বিবরণগুলি সেই সমস্ত উপযোগগুলির জন্য ম্যান পৃষ্ঠা থেকে সরাসরি নেওয়া হয়েছে।
মনিকা iamnotmaynard

5

locateডিফল্টরূপে গ্লোব প্যাটার্ন নেয় (রেজেক্স প্যাটার্নটিও ব্যবহার করা যেতে পারে) এবং /var/lib/mlocate/mlocate.dbপ্যাটার্নের সাথে মেলে যে কোনও ফাইলের নামের জন্য ডাটাবেস অনুসন্ধান করে ।

whichPATHএনভায়রনমেন্ট ভেরিয়েবল দ্বারা ব্যাখ্যা করা ডিরেক্টরিগুলিতে একটি কমান্ডের পুরো পথ অনুসন্ধান করার জন্য একটি কমান্ড ।

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