উদাহরণস্বরূপ, আমি 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