2012-05-18 15 views
17

में फ़ोल्डर पथ के अंतिम भाग लें? myfolder पथ।खोल

यह आसान होना चाहिए लेकिन मुझे खोल में आसान समाधान नहीं मिला। मुझे पता है कि जावा में इसका ख्याल रखना है, लेकिन खोल में नहीं।

धन्यवाद

+0

मुझे नहीं लगता कि यह सही है: 'pwd' का आउटपुट ** ** में पीछे नहीं है'/'। – Jens

उत्तर

16

आप सही हैं - यह एक त्वरित आदेश है:

basename "$PWD" 
+1

यह कम से कम एक बेकार महंगा कांटा है। '$ PWD' का उपयोग करने के बारे में क्या? – Jens

0

आप उस के लिए basename उपयोग कर सकते हैं, बशर्ते अंतिम भाग वास्तव में एक निर्देशिका घटक (नहीं एक फ़ाइल) है:

$ basename /home/username/Desctop/myfolder/ 
myfolder 
0

एक पथ के अंतिम भाग को निकालने के लिए, basename का उपयोग करके देखें ...

basename $(pwd); 
2

लिनक्स में, कमांड की एक जोड़ी है, dirname और basenamedirname पथ के अंतिम भाग के अलावा सभी को निकालता है, और basename केवल पथ के अंतिम भाग को निष्कर्ष निकालता है।

इस मामले में, basename का उपयोग कर आप क्या चाहते हैं क्या करेंगे:

basename $(pwd)

7

basename $(pwd) का उपयोग दो बेकार और महंगी कांटे हैं। (: रूट निर्देशिका के लिए इस रिक्त स्ट्रिंग है रोड़ा)

echo ${PWD##*/} 

महंगा कांटे बिना खोल में पूरी तरह से चाल करना चाहिए।

+1

केवल एक चीज यह है कि अंतिम '/ '' बेसनाम' में हटा दिया गया है ($ PWD के साथ एक प्लीज नहीं हो सकता है लेकिन अन्य कस्टम पथों में भी हो सकता है। फिर भी मैं इस विधि को इस पर चुनूंगा। एक और '$ {VAR% /} '(पहले) मुश्किल नहीं है। उत्तर के लिए +1, और ** महंगी ** शब्द का भी उल्लेख करना। – konsolebox

0
function basename { 
    shopt -s extglob 
    __=${1%%+(/)} 
    [[ -z $__ ]] && __=/ || __=${__##*/} 
} 

basename "$PWD" 
echo "$__"