2009-11-16 11 views
23

मैं एक पीडब्ल्यूडी आउटपुट की अंतिम निर्देशिका कैसे निकालें? मैं किसी भी ज्ञान का उपयोग नहीं करना चाहता कि निर्देशिका संरचना में कितने स्तर हैं। तो मुझे लगता है कि उपयोग करना चाहता था, मैं कुछ ऐसा कर सकता है:एक पीडब्ल्यूडी आउटपुट की अंतिम निर्देशिका निकालें

> pwd 
/home/kiki/dev/my_project 
> pwd | cut -d'/' -f5 
my_project 

लेकिन मैं एक आदेश है कि मैं कहाँ निर्देशिका संरचना में हूँ परवाह किए बिना काम करता है का उपयोग करना चाहते। मुझे लगता है कि अजीब या sed का उपयोग करके ऐसा करने के लिए एक सरल आदेश है।

+0

क्या होगा यदि अपने काम निर्देशिका/है? –

उत्तर

33

क्या आप basename या dirname देख रहे हैं?

कुछ की तरह

basename `pwd` 

क्या आप जानना चाहते हैं होना चाहिए।

आप sed के प्रयोग पर जोर देते हैं, तो आप भी इस्तेमाल कर सकते हैं

pwd | sed 's#.*/##' 
+0

अच्छा, यह काम करता है। धन्यवाद! – Siou

+3

या, अधिक संभावना 'endpath = $ (बेसनाम $ (pwd)) '। –

+2

"$ (pwd)" के आस-पास गुम उद्धरण। उद्धरण के बिना इसे आज़माएं: mkdir "ab b"; सीडी "एबी बी" एंडपैथ = $ (बेसनाम "$ (पीडब्ल्यूडी)") –

11

आपको किसी भी बाहरी बाइनरी चलने के बिना एक bash स्क्रिप्ट के भीतर यह पूरी तरह से करना चाहते हैं, ${PWD##*/} काम करना चाहिए।

+0

एक बिंदु तक ... यदि आप एक अलग नाम के साथ एक सिम्लिंक के माध्यम से निर्देशिका में पहुंचे, तो $ PWD मान अलग से अलग होगा मूल्य/bin/pwd या/usr/bin/pwd द्वारा उत्पादित (जो अंतर्निहित pwd से अलग है)। –

+0

@ जोनाथन लेफ्लर: प्रश्नकर्ता ने निर्मित पीडब्ल्यूडी का इस्तेमाल किया, इसलिए मुझे लगता है कि यह $ पीडब्ल्यूडी का उपयोग करना उचित था। – Teddy

0

का उपयोग awk:

pwd | awk -F/ '{print $NF}' 
-1

आप के लिए काम करना चाहिए: pwd | rev | cut -f1 -d'/' - | rev

संदर्भ: https://stackoverflow.com/a/31728689/663058

+0

यह सुनिश्चित नहीं है कि यह क्यों नीचे मतदान किया गया था। मैं इस विधि का बहुत शौकिया हूँ। यदि कोई अच्छा कारण है, तो मैं इसे सुनना चाहता हूं। – CenterOrbit