উদাহরণস্বরূপ, আমি git
আমার সিস্টেমে ইনস্টল করেছি। তবে আমি এটি কোথায় ইনস্টল করেছি তা মনে নেই, সুতরাং এটি খুঁজে পাওয়ার জন্য কোন আদেশটি উপযুক্ত?
উদাহরণস্বরূপ, আমি git
আমার সিস্টেমে ইনস্টল করেছি। তবে আমি এটি কোথায় ইনস্টল করেছি তা মনে নেই, সুতরাং এটি খুঁজে পাওয়ার জন্য কোন আদেশটি উপযুক্ত?
উত্তর:
যদি এটি আপনার পথে থাকে তবে আপনি চালাতে পারেন type git
বা হয় which git
। which
কমান্ড সমস্যার সঠিক পথ (পরিবেশ এবং বিন্দু ফাইলের মধ্যে বিভ্রান্তি) পেয়ে ছিল। কারণ type
, আপনি -p
যুক্তি দিয়ে কেবল পথ পেতে পারেন ।
যদি এটি আপনার পথে না থাকে, তবে এটির সাথে সন্ধান করা ভাল locate -b git
এটি 'গিট' নামে কিছু খুঁজে পাবে। এটি একটি দীর্ঘ তালিকা হবে, তাই এটির সাথে যোগ্যতা অর্জন করা ভাল locate -b git | fgrep -w bin
।
locate
অবিরাম ব্যবহার করি (এটি খুব দ্রুত) তবে এটি সম্পর্কে অসচেতনদের locate
জন্য কেবলমাত্র এটি সর্বশেষতম ডাটাবেস আপডেট হিসাবে আপ টু ডেট which যা আমার উবুন্টুতে স্বয়ংক্রিয়ভাবে প্রতিদিন চালিত হয়। রিফ্রেশ কমান্ড sudo updatedb
... এছাড়াও locate
: বিল্ট ইন Regex ক্ষমতা উপলব্ধ রয়েছে, তাই এই মত কমান্ড কাজ করে locate -br "^git$"
-b` উপায়ে মাত্র অনুসন্ধানকে সীমাবদ্ধ ... basename ... অথবা ছাড়া -b
, এটা সম্পূর্ণ পথনাম অনুসন্ধান করে .. এছাড়াও , এটি অনুসন্ধানের জন্য আপনি এটি কনফিগার করেছেন এমন পাথগুলি অনুসন্ধান করে .. আপনার রেজেক্স ফিল্টার ব্যতীত এর কোনও কমান্ড-লাইন নিয়ন্ত্রণ নেই।
type
শেল বিল্টিন যা আমাকে এলিয়াস এবং এ জাতীয় কথা বলে এবং which
এটি একটি বহিরাগত প্রোগ্রাম যা আমাকে কার্যকর করার পথে দেখায় ... যদিও সেখানে যদি কোনও বিল্টিন থাকে যা যেভাবে এক্সিকিউটেবল কল হবে না।
which
এটি শেল বিল্ট-ইনগুলি এবং ফাংশনগুলি সম্পর্কে জানেন না (যা আপনি যখন কমান্ডটি টাইপ করবেন তা ভাবছেন তখন প্রাসঙ্গিক) এবং এটি $PATH
কিছু সিস্টেমে আলাদা ব্যবহার করে।
POSIX মান এই কাজ করতে উপায় command -v git
। সমস্ত ইউনিক্স-এর মতো সিস্টেমে এটি সমর্থন করা উচিত।
whereis git
এবং আপনি আদেশের পথ পান get
এটি কেবলমাত্র যদি গিটটি আপনার মধ্যে PATH ভেরিয়েবল থাকে তবে আপনি যদি এটি প্যাকেজ ম্যানেজারের মাধ্যমে না ইনস্টল করেন তবে এটি আরও জটিল এবং আপনার আদেশ find
বা locate
আদেশগুলি ব্যবহার করা উচিত ।
which
এছাড়াও উত্সাহ দেওয়া হয়।
এখানে অন্যান্য উত্তর মূলত লিনাক্স আধুনিক সংস্করণ প্রতি গতি বাড়ানোর হবে বলে মনে হচ্ছে, তাই যদি আপনি ব্যবহার করতে ঘটতে git
একটি অপারেটিং সিস্টেম নেই যে locate
, whereis
, which
, অথবা apropos
(সোলারিস, HPUX, ইত্যাদি মত), তারপর সবসময়ই পুরাতন স্ট্যান্ডবাই হয় find
।
find / -name git
উপরে তালিকাভুক্ত সিস্টেমগুলির কয়েকটি পুরানো সংস্করণ, আপনার -print
সরবরাহিত বিকল্পের প্রয়োজন হতে পারে find
।
find / -name git -print
এবং যদি আপনি ব্যবহার করেন তবে locate
নিশ্চিত হন যে আপনি updatedb
পর্যায়ক্রমে চালাচ্ছেন । ( locate.updatedb
কিছু বিএসডি ডেরিভেটিভসে)
type
; এটি নির্ভরযোগ্য এবং বহনযোগ্য (30 বছরের পুরানো সিস্টেমগুলি বাদে)।
type
। :) এটি অবশ্যই পুস্তকটিতে যাচ্ছে!
find
আপনি যেখানেই এটি রুট করবেন সেখান থেকে শুরু হওয়া ফাইল সিস্টেমের সম্পূর্ণ গভীরতা-প্রথম অনুসন্ধান করে। সুতরাং find / -name git
আপনার পুরো সিস্টেম অতিক্রম করবে। আপনি যদি জানেন যে প্রোগ্রামটি আপনার পথে চলছে তবে আপনি সাধারণত করতে পারেন IFS=":"; path=$PATH; set $path; for dir in $path; do find $dir -name git; done
, যদিও ইউনিক্স ফাইল সিস্টেমগুলি পর্যাপ্ত পরিমাণে অনুমতিপ্রাপ্ত যে এটিতে আপনার যদি অদ্ভুত অক্ষর থাকে তবে এটি বিভিন্ন উপায়ে ভেঙে যেতে পারে PATH
।
PATH
হ'ল আপনার , সঠিক জিনিসটি (আগের মতো একই সাবধানবাণী সহ) ভঙ্গ হবে IFS=":"; for dir in $PATH; do find "$dir" -name git; done
। এছাড়াও, পুনরাবৃত্তি করতে, এই উত্তরটি কেবলমাত্র এমন লোকদের দ্বারা ব্যবহার করা উচিত যাদের অ্যাক্সেস নেই type
বা which
বা locate
, অর্থাৎ প্রায় কেউই নেই। @ আর্জেজের উত্তরটি সঠিক।
ইনস্টলড প্রোগ্রামটির পথ পেতে আপনি হয় ব্যবহার করেন whereis
বা which
। যদি আপনি এর নামটি ভুলে যেতে চান তবে আপনি apropos
আপনার ইউটিলিটির প্রতিশব্দ বা বর্ণনা সহ ব্যবহার করতে পারেন , উদাহরণস্বরূপ apropos "version control"
পাবেন git
। এটি অনুসরণ করা অবশ্যই whatis
একটি প্রোগ্রামের ক্রিয়াকলাপের সংক্ষিপ্তসারের জন্য আদেশ। এটি আপনার সিস্টেমে সমস্ত প্রোগ্রাম এবং ফাংশনের ক্ষেত্রে প্রযোজ্য নয়। উদাহরণস্বরূপ চেষ্টা করুন whatis "the meaning of life, universe and everything"
।
which