আমি একটি লিনাক্স কমান্ডের মুখোমুখি হয়েছি builtin cd,।
কমান্ড builtin cdএবং এর মধ্যে পার্থক্য কি cd?
আসলে, আমি পার্থক্য সম্পর্কে কিছু গবেষণা করেছি, তবে আমি এই সম্পর্কে একটি উল্লেখযোগ্য এবং উল্লেখযোগ্য ব্যাখ্যা খুঁজে পাইনি could
আমি একটি লিনাক্স কমান্ডের মুখোমুখি হয়েছি builtin cd,।
কমান্ড builtin cdএবং এর মধ্যে পার্থক্য কি cd?
আসলে, আমি পার্থক্য সম্পর্কে কিছু গবেষণা করেছি, তবে আমি এই সম্পর্কে একটি উল্লেখযোগ্য এবং উল্লেখযোগ্য ব্যাখ্যা খুঁজে পাইনি could
উত্তর:
cdকমান্ড একটি বিল্ট-ইন, তাই স্বাভাবিকভাবে builtin cdএকই জিনিস কি করতে হবে cd। তবে একটি পার্থক্য আছে যদি cdফাংশন বা উপন্যাস হিসাবে পুনরায় সংজ্ঞায়িত করা হয়, তবে এই ক্ষেত্রে cdফাংশন / ওরফে কল builtin cdকরবে তবে ডিরেক্টরিটি পরিবর্তন করবে (অন্য কথায়, কোনও ফাংশন দ্বারা ক্লাব্বার্ড হলেও বিল্ট-ইন অ্যাক্সেসযোগ্য রাখবে))
উদাহরণ স্বরূপ:
user:~$ cd () { echo "I won't let you change directories"; }
user:~$ cd mysubdir
I won't let you change directories
user:~$ builtin cd mysubdir
user:~/mysubdir$ unset -f cd # undefine function
বা একটি উপনাম সহ:
user:~$ alias cd='echo Trying to cd to'
user:~$ cd mysubdir
Trying to cd to mysubdir
user:~$ builtin cd mysubdir
user:~/mysubdir$ unalias cd # undefine alias
ব্যবহার builtinএছাড়াও একটি ভালো উপায় একটি সংজ্ঞায়িত করতে cdফাংশন যা কিছু আছে এবং ডিরেক্টরির পরিবর্তিত করে (কলিং থেকে cdএকটি অবিরাম পুনরাবৃত্তির মধ্যে আবার তা থেকে মাত্র ফাংশন কলিং রাখা হবে।)
উদাহরণ স্বরূপ:
user:~ $ cd () { echo "Changing directory to ${1-home}"; builtin cd "$@"; }
user:~ $ cd mysubdir
Changing directory to mysubdir
user:~/mysubdir $ cd
Changing directory to home
user:~ $ unset -f cd # undefine function
builtin cd mysubdirএবং এর মধ্যে কোনও পার্থক্য রয়েছে \cd mysubdirকি?
cdযে ক্ষেত্রে, \cdওরফে বাইপাস would এবং ফাংশন চালানো। দেখুন stackoverflow.com/a/16506263/4518341
বেশিরভাগ ক্ষেত্রে, কোনও পার্থক্য নেই (তবে নীচে দেখুন)। cdকমান্ড একটি বিল্ট-ইন সব শাঁস কমান্ড। বাহ্যিক কমান্ডটি ইনভোকেটিং শেলের পরিবেশ পরিবর্তন করতে পারে না এবং কার্য ডিরেক্টরিকে পরিবর্তন করা এর পরিবেশের পরিবর্তনের কারণ হিসাবে এটি 1 টি বিল্ট ইন হওয়া দরকার ।
bashকমান্ড builtinবাহিনী শেল ব্যবহার করতে বিল্ট-ইন কমান্ড সংস্করণ, যদিও সেখানে শেল ফাংশন, ওরফে অথবা এক্সটারনাল কমান্ড একই নামের পাওয়া যেতে পারে।
কেস যেখানে ইন করা হয় নামের সঙ্গে একটি শেল ফাংশন যেমন cd, তারপর builtin cdহবে না যে কল। ব্যবহারকারীর দ্বারা শেল ফাংশন বা উরফের মাধ্যমে যুক্ত হওয়া যে কোনও অতিরিক্ত লোড কার্যকারিতা বাইপাসগুলি ব্যবহার করা builtin cd।
উদাহরণ:
cdবিল্ট-ইন কমান্ড একটি ফাংশন যেগুলি বিজ্ঞপ্তি আপডেট দ্বারা ওভারলোড হয়ে থাকতে পারে:
cd() {
builtin cd "$@" && PS1=$(__update_prompt)
}
যেখানে __update_promptঅন্য কোনও ব্যবহারকারীর সরবরাহ করা ফাংশন রয়েছে যা স্ট্রিংয়ের ফলাফল দেয়।
builtin cdফাংশন ফাংশন যাও recursively কল না। builtin cdএই ফাংশনটি সক্রিয় রয়েছে এমন শেল ব্যবহার করে অতিরিক্তভাবে ফাংশনটি কল করা হবে না।
1 বাহ্যিক cdকমান্ড (ম্যাকোস, এবং আমি বিশ্বাস করি, সোলারিস) সহ ইউনিসিস রয়েছে । সেই কমান্ডের উদ্দেশ্য, যা শেলের জন্য কার্যনির্বাহী ডিরেক্টরি পরিবর্তন করতে পারে না , সম্ভবত পসইএক্স মানকে সন্তুষ্ট করা, যা cdপাওয়া উচিত এমন একটি বাহ্যিক ইউটিলিটি হিসাবে তালিকাভুক্ত করে ( cd"বিশেষ বিল্টিন ইউটিলিটিগুলির মধ্যে একটি নয়)" । কোনও কাজের ডিরেক্টরি ডিরেক্টরিকে দেওয়া ডিরেক্টরিতে পরিবর্তন করা সম্ভব কিনা তা পরীক্ষা করার জন্য এটিও পরীক্ষা হিসাবে কাজ করতে পারে ।
cdকমান্ডের সাহায্যে ওএস বিভাগে চলে আসবে।