আপনার অন্যান্য প্রশ্নগুলি থেকে আমি এটি গ্রহণ করি যে আপনি ওএস এক্স ব্যবহার করছেন OS উভয় নাম একই ফাইলে পাবেন। সাইগউইনের অধীনে বা কেস-সংবেদনশীল ফাইল সিস্টেমগুলির সাথে (FAT32 বা ciopfs এর মতো ) কোথাও একই জিনিস ঘটতে পারে ।
কারণ grepএকটি বাস্তব নির্বাহযোগ্য, এটি ফাইল সিস্টেমে সন্ধান করা হয় (ডিরেক্টরিতে PATH)। যখন আপনার শেল সৌন্দর্য /usr/binপারেন জন্য grepবা GREPএটা পাবেন grepএক্সিকিউটেবল।
শেল builtins হয় না ফাইলসিস্টেম-এর দিকে তাকিয়ে: কারণ তারা সালে নির্মিত করছি, তারা শেল নিজে এর ভিতরে (কেস সংবেদনশীল) স্ট্রিং তুলনা সাহায্যে চালু হয়।
আপনি যা মুখোমুখি হচ্ছেন তা একটি আকর্ষণীয় ঘটনা। যদিও cdএটি বিল্টিন, অ্যাক্সেসড কেস-সংবেদনশীলভাবে, CDএক্সিকিউটেবল হিসাবে পাওয়া যায় /usr/bin/cd। cdএক্সিকিউটেবল চমত্কার অনর্থক কারণ cdবর্তমান শেল সঞ্চালনের পরিবেশ প্রভাবিত করে, এটা সবসময় একটি শেল হিসাবে প্রদান করা হয় নিয়মিত বিল্ট-ইন , কিন্তু একটা হয় cdএক্সিকিউটেবল POSIX দোহাই জন্য যাহাই হউক না কেন, যা নিজেই জন্য ডিরেক্টরি পরিবর্তন এবং তারপরে সঙ্গে সঙ্গে বন্ধ, পার্শ্ববর্তী শেল যাব যেখানে এটি শুরু হয়েছিল।
আপনি typeবিল্টিন দিয়ে এটি ব্যবহার করে দেখতে পারেন :
$ type cd
cd is a shell builtin
$ type CD
CD is /usr/bin/CD
typeআপনি যখন আদেশটি চালাবেন তখন শেলটি কী করবে তা আপনাকে জানায়। আপনি চালনা করার সময় আপনি cdবিল্টিন অ্যাক্সেস করেন CDতবে এক্সিকিউটেবলকে খুঁজে পান। অন্যান্য বিল্টিনগুলির জন্য, বিল্টিন এবং এক্সিকিউটেবল যুক্তিসঙ্গতভাবে সামঞ্জস্যপূর্ণ হবে (চেষ্টা করুন echo), তবে cdএটি সম্ভব নয়।
alias GREPবাwhich GREPআউটপুট কিছু।