में फ़ोल्डर पथ के अंतिम भाग लें? myfolder
पथ।खोल
यह आसान होना चाहिए लेकिन मुझे खोल में आसान समाधान नहीं मिला। मुझे पता है कि जावा में इसका ख्याल रखना है, लेकिन खोल में नहीं।
धन्यवाद
में फ़ोल्डर पथ के अंतिम भाग लें? myfolder
पथ।खोल
यह आसान होना चाहिए लेकिन मुझे खोल में आसान समाधान नहीं मिला। मुझे पता है कि जावा में इसका ख्याल रखना है, लेकिन खोल में नहीं।
धन्यवाद
आप सही हैं - यह एक त्वरित आदेश है:
basename "$PWD"
यह कम से कम एक बेकार महंगा कांटा है। '$ PWD' का उपयोग करने के बारे में क्या? – Jens
आप उस के लिए basename
उपयोग कर सकते हैं, बशर्ते अंतिम भाग वास्तव में एक निर्देशिका घटक (नहीं एक फ़ाइल) है:
$ basename /home/username/Desctop/myfolder/
myfolder
एक पथ के अंतिम भाग को निकालने के लिए, basename
का उपयोग करके देखें ...
basename $(pwd);
लिनक्स में, कमांड की एक जोड़ी है, dirname
और basename
। dirname
पथ के अंतिम भाग के अलावा सभी को निकालता है, और basename
केवल पथ के अंतिम भाग को निष्कर्ष निकालता है।
इस मामले में, basename
का उपयोग कर आप क्या चाहते हैं क्या करेंगे:
basename $(pwd)
basename $(pwd)
का उपयोग दो बेकार और महंगी कांटे हैं। (: रूट निर्देशिका के लिए इस रिक्त स्ट्रिंग है रोड़ा)
echo ${PWD##*/}
महंगा कांटे बिना खोल में पूरी तरह से चाल करना चाहिए।
केवल एक चीज यह है कि अंतिम '/ '' बेसनाम' में हटा दिया गया है ($ PWD के साथ एक प्लीज नहीं हो सकता है लेकिन अन्य कस्टम पथों में भी हो सकता है। फिर भी मैं इस विधि को इस पर चुनूंगा। एक और '$ {VAR% /} '(पहले) मुश्किल नहीं है। उत्तर के लिए +1, और ** महंगी ** शब्द का भी उल्लेख करना। – konsolebox
function basename {
shopt -s extglob
__=${1%%+(/)}
[[ -z $__ ]] && __=/ || __=${__##*/}
}
basename "$PWD"
echo "$__"
मुझे नहीं लगता कि यह सही है: 'pwd' का आउटपुट ** ** में पीछे नहीं है'/'। – Jens