माइकल द्वारा बताए गए डारनेम और बेसनेम का उपयोग करना आपके लिए सबसे सुरक्षित तरीका होना चाहिए।
वैसे भी अगर आप वास्तव में "केवल उपकरण को दंश" के साथ ऐसा करना चाहते हैं, तो आप पैरामीटर प्रतिस्थापन का उपयोग कर सकते हैं:
echo `basename $PWD` # Basename of current working directory.
echo "${PWD##*/}" # Basename of current working directory.
echo
echo `basename $0` # Name of script.
echo $0 # Name of script.
echo "${0##*/}" # Name of script.
echo
filename=test.data
echo "${filename##*.}" # data
# Extension of filename.
यह उदाहरण सीधे एडवांस्ड बैश स्क्रिप्टिंग गाइड से लिया गया है, जो देखने लायक है।
स्पष्टीकरण बहुत आसान है:
$ {var # पैटर्न} $ var के सबसे छोटे हिस्से को $ var से निकालें जो $ var के फ्रंट एंड से मेल खाता है। $ {var ## पैटर्न} $ var से $ पैटर्न का सबसे लंबा हिस्सा निकालें जो $ var के सामने के छोर से मेल खाता है।
पैटर्न को कुछ रेगेक्स और #
या ##
कुछ प्रकार के लालची / गैर-लालची संशोधक के रूप में देखें।
यह उपयोगी हो सकता है यदि आपको एक पथ के हिस्से के कुछ अधिक जटिल अर्क करने होंगे।