বাশ সরানো / মুছে ফেলা এক নির্বাহযোগ্যের ভুল পথ মনে রাখে


29

যখন আমি করি

which pip3

আমি পাই

/usr/local/bin/pip3

কিন্তু যখন আমি মৃত্যুদন্ড কার্যকর করার চেষ্টা করি তখন আমি pip3নীচের মতো একটি ত্রুটি পাই:

bash: /usr/bin/pip3: No such file or directory

কারণ আমি সম্প্রতি সেই ফাইলটি মুছলাম। এখন whichকমান্ডটি এর অন্য একটি সংস্করণে pip3অবস্থিত যেখানে এটি অবস্থিত /usr/local/binকিন্তু শেলটি এখনও ভুল পথটি মনে করে। আমি কীভাবে এটিকে ভুলতে পারি?

whichম্যানুয়াল বলেছেন

which returns the pathnames of the files (or links) which would be executed in the current environment, had its arguments been given as commands in
       a strictly POSIX-conformant shell.  It does this by searching the PATH for executable files matching the names of the arguments. It does not follow
       symbolic links.

উভয়ই /usr/local/binএবং /usr/binআমার PATHপরিবর্তনশীল, এবং /usr/local/bin/pip3এটি একটি প্রতীকী লিঙ্ক নয়, এটি কার্যকর করার যোগ্য। তাহলে এটি কার্যকর করা হয় না কেন?


বিষয়বস্তু কি /usr/local/bin/pip3?
টমাস

আপনি কি আগে pip3শেলটি চালানোর /usr/binপরে চালিয়েছিলেন এবং তারপরে সরিয়ে নিয়েছেন ?
এরিক রেনোফ

1
দৌড়ালে কী দেখবে hash -t pip3?
এরিক রেনৌফ

1
@ এরিক রেনৌফ hash -t pip3প্রিন্ট করুন/usr/bin/pip3
স্পাইডারফেস

2
আপনার যদি খুব ভাল কারণ না থাকে তবে আপনার উচিত সর্বদা typeতুলনায় ইথার ব্যবহার করা whichtypeএকটি পজিক্স শেল হিসাবে তৈরি করা হয় এবং শেলটি কী করবে সে সম্পর্কে আপনাকে জানায়, শেলটি কী করবে তা whichঅনুমান করার চেষ্টা করে।
আইক্রাস

উত্তর:


37

আপনি যখন bashএটিতে কোনও কমান্ড চালাবেন তখন সেই নির্বাহের অবস্থানের কথা মনে পড়বে তাই PATHপ্রতিবার এটি পুনরায় অনুসন্ধান করতে হবে না। সুতরাং আপনি যদি এক্সিকিউটেবল চালনা করেন তবে অবস্থান পরিবর্তন করুন, bashতারপরেও পুরানো অবস্থানটি ব্যবহার করার চেষ্টা করবেন। আপনার এটি নিশ্চিত করতে সক্ষম হওয়া উচিত hash -t pip3যা দিয়ে পুরানো অবস্থানটি প্রদর্শিত হবে।

আপনি যদি চালনা করেন hash -d pip3তবে এটি পুরানো অবস্থানটি ভুলে যেতে বাশকে বলবে এবং পরের বার চেষ্টা করার পরে নতুনটি খুঁজে পাওয়া উচিত।


4
বা hash -rপুরো টেবিলটি সাফ করার জন্য।
ম্যাটডেম

হ্যাঁ, এটি কাজ করেছিল। আমি মনে করি আমি প্রশ্নের শিরোনাম পরিবর্তন করব কারণ এর সাথে কিছু করার নেই which
স্পাইডারফেস

1
@ স্পাইডারফেস বেশিরভাগ বাশ বৈশিষ্ট্যের helpজন্য মানুষের পরিবর্তে ব্যবহার করা সহজ , সুতরাং এখানেhelp hash
এরিক রেনোফ

3
@ স্পাইডারফেস type hashআপনাকে বলবে যে এটি একটি শেল বিল্টিন, তাই এটির নিজস্ব ম্যান পৃষ্ঠা নেই। পরিবর্তে, ব্যাশের ম্যান পৃষ্ঠাতে ব্যবহার help hashবা সন্ধান করুন hash
ডেলটাব

1
অথবা, যদি আপনি সত্যিই ব্যবহার করতে চান man... যেহেতু hashএকটি bashঅন্তর্নির্মিত, আপনি man bashএটি সন্ধান করতে চাইবেন । তবে ম্যান পেজ যা বলে তা মূলত help hashবাশ কী বলে।
এমএপি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.