whichआदेश रिटर्न केवल निष्पादनयोग्य: यह, उपनाम के बारे में कुछ भी नहीं जानता है, क्योंकि यह एक बाहरी कार्यक्रम है, और वहाँ एक बच्चे की प्रक्रिया के रूप में नामित जानकारी पारित करने के लिए कोई तंत्र है।
यदि आप कमांड दर्ज करते हैं तो आप type -a cpवरीयता के क्रम में सभी संभावित व्याख्याएं देखेंगे। इसमें कोई अन्य उपनाम शामिल है, क्योंकि typeएक bashआंतरिक कमांड है।
यह महसूस करना महत्वपूर्ण है कि एक उप-प्रक्रिया द्वारा एक उपनाम की व्याख्या नहीं की जाएगी, जैसे कि एक स्क्रिप्ट या एक इंटरैक्टिव संपादक जो सिस्टम कमांड चलाने का एक विकल्प है।
यदि आप cpकोई फ़ंक्शन करते हैं, तो आपका संस्करण स्क्रिप्ट में चलेगा, हालांकि अन्य कार्यक्रमों से नहीं:
cp() { /usr/local/bin/gcp "$@"; }
यदि आप चाहते हैं कि आपका cpकाम हर जगह हो, तो $HOME/binअपनी PATHसूची के प्रमुख को जोड़ें और $HOME/bin/cpउसे इंगित करें:
ln -s /usr/local/bin/gcp $HOME/bin/cp
यह एक प्रतीकात्मक लिंक बनाता है, हालांकि आप इसे थोड़ा और अधिक कुशल हार्ड लिंक (omit -s) बना सकते हैं, लेकिन इसके लिए सामान्य रूप से रूट अनुमतियों ( sudo ln ...) की आवश्यकता होगी । फ़ंक्शन बनाना और PATHवैरिएबल में जोड़ना bashउपयोगकर्ता अनुमतियों के साथ स्टार्ट-अप स्क्रिप्ट में से एक में किया जाएगा ।
PATH।