আমার পথে যাওয়ার পরেও কোনও প্রোগ্রাম খুঁজে পাচ্ছে না বাশ


26

আমার পথে একটি প্রোগ্রাম আছে। প্রোগ্রামটি যখন একটি পুরো পথ নির্দিষ্ট করে দিয়ে সম্পাদিত হয় তখন চলে। আমি যখন নামটি দিয়ে এটি চালাচ্ছি তবে প্রোগ্রামটি খুঁজে পাওয়া যাবে না।

মূলত, আমি বুঝতে চাই যে নীচের আউটপুটটি কীভাবে সম্ভব, এবং কীভাবে এটি ঠিক করা যায় যাতে আমার প্রোগ্রামটি নির্দিষ্ট কোনও পুরো পথ ছাড়াই খুঁজে পাওয়া যায়:

root:/usr/local/bin# ./siege
****************************************************
siege: could not open /usr/local/bin/etc/siegerc
run 'siege.config' to generate a new .siegerc file
****************************************************
root:/usr/local/bin# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
root:/usr/local/bin# siege
bash: /usr/bin/siege: No such file or directory
root:/usr/local/bin# wtf!?!?

আমি ব্যাশ ব্যবহার করে উবুন্টু 12.04 এ আছি। এছাড়াও দয়া করে নোট করুন অবরোধের মাধ্যমে দেওয়া সতর্কতা আউটপুট এই প্রশ্নের উদ্দেশ্যগুলির জন্য প্রাসঙ্গিক নয়, কারণ আমি কেবল প্রোগ্রামটি খুঁজে পেতে এবং প্রার্থনা করতে পারি কিনা তাতেই আগ্রহী।

উত্তর:


38

এখানে আউটপুট নোট করুন:

root:/usr/local/bin# siege
bash: /usr/bin/siege: No such file or directory

বাশ আপনার পথে আগে পাওয়া এক্সিকিউটেবলের অভ্যন্তরীণ হ্যাশ বজায় রাখে। এই ক্ষেত্রে, এর বিশদ রয়েছে যে এক সময়ে / usr / bin / অবরোধের সময় একটি এক্সিকিউটেবল ছিল এবং আবার অনুসন্ধান না করে এড়াতে সেই পথটি পুনরায় ব্যবহার করে। এইভাবে অবরোধের জন্য পথটি ম্যানুয়ালি পুনঃস্থাপন করতে আপনাকে বাশকে বলতে হবে:

hash siege

আপনি সমস্ত হ্যাশযুক্ত অবস্থানগুলি সাফ করতে পারেন:

hash -r

0

এই সমস্যার আর একটি কারণ হতে পারে যে এক্সিকিউটেবলের ডিরেক্টরি সম্বলিত এক্সিকিউটেবলের পরিবর্তে এক্সিকিউটেবলের নিজেই পাথ থাকে ।

সুতরাং রাখার পরিবর্তে

/home/myDir/theExecutable

পথে, নিছক এটি যোগ করুন

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