এক্সিকিউটেবলের জন্য hash -r
অভ্যন্তরীণ $PATH
ক্যাশে পুনরায় সেট করতে বাশ শেলের একটি অন্তর্নির্মিত কমান্ড রয়েছে ।
কখন এই আদেশটি ব্যবহার করা প্রয়োজন?
সম্পর্কিত: বাশ দিয়ে কীভাবে এক্সিকিউটেবলগুলিকে ha PATH এ পুনঃস্থাপন করতে হয়
এক্সিকিউটেবলের জন্য hash -r
অভ্যন্তরীণ $PATH
ক্যাশে পুনরায় সেট করতে বাশ শেলের একটি অন্তর্নির্মিত কমান্ড রয়েছে ।
কখন এই আদেশটি ব্যবহার করা প্রয়োজন?
সম্পর্কিত: বাশ দিয়ে কীভাবে এক্সিকিউটেবলগুলিকে ha PATH এ পুনঃস্থাপন করতে হয়
উত্তর:
hash
হ'ল বাশ অন্তর্নির্মিত কমান্ড। হ্যাশ টেবিলটি ব্যাশের একটি বৈশিষ্ট্য যা প্রতিবার আপনি মেমরিতে ফলাফলগুলি ক্যাশে করে কোনও কমান্ড টাইপ করে $ PATH অনুসন্ধান করা থেকে বাধা দেয়।
সুতরাং যখন ক্যাশেড / সঞ্চিত তথ্য আর আপডেট হয় না বা বৈধ হয় না তখন আপনাকে এটি পুনরায় সেট করতে হবে।
ইউনিক্স স্ট্যাকেক্সচেঞ্জে এই সুন্দর উত্তরের জন্য আরও পড়ুন ।
আপনি যদি সেই শেল অনুরোধে এর আগে কোনও প্রোগ্রাম চালিয়েছেন এবং তারপরে আপনার $PATH
অনুসন্ধান তালিকার পূর্ববর্তী ডিরেক্টরিতে এটির একটি অন্য সংস্করণ ইনস্টল করেন , আপনাকে হ্যাশটি পুনরায় সেট করতে হবে যাতে এটি এটি নতুন জায়গায় খুঁজে পাবে। অন্যথায়, এটি পুরানো স্থানে প্রোগ্রামটি খুঁজতে ক্যাশে ব্যবহার করবে।
আপনার যদি 2 টি ডিরেক্টরিতে কোনও প্রোগ্রাম ইনস্টল করা থাকে তবে আপনাকে হ্যাশটিকে পুনরায় সেট করতে হবে $PATH
এবং আপনি অনুলিপিটি পূর্ববর্তী অবস্থান থেকে সরিয়ে নেওয়ার পরে সরিয়ে ফেলতে হবে। অন্যথায়, এটি সেই অবস্থানটিতে এটি অনুসন্ধান করার চেষ্টা করবে এবং "এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই" (ব্যক্তিগতভাবে, আমি মনে করি এটি হ্যাশটি স্বয়ংক্রিয়ভাবে সাফ করা উচিত এবং যখন ঘটেছিল তখন একটি সম্পূর্ণ অনুসন্ধান করা উচিত, তবে আমি চেষ্টা করার পরে তা ঘটেনি) )।
মনে রাখবেন যে আপনাকে আসলে পুরো হ্যাশটি পুনরায় সেট করতে হবে না, আপনি এটি ব্যবহার করতে পারেন:
hash name
কেবলমাত্র নামের জন্য এটি ক্যাশে এন্ট্রি আপডেট করতে বাধ্য করুন, বা:
hash -d name
ঠিক সেই ক্যাশে এন্ট্রি মুছতে। এগুলি অন্যান্য সমস্ত ক্যাশে এন্ট্রি একা রেখে দেয়।
hash -r
সংশোধন করার পরে আপনাকে ব্যবহার করার দরকার নেই $PATH
, এটি হয়ে গেলে এটি স্বয়ংক্রিয়ভাবে পুনরায় সেট হয়।