यह मूल निर्देशिका के साथ foo.c
नई निर्देशिका में स्थानांतरित हो जाएगा ।baz
bar
mv foo.c `mkdir -p ~/bar/baz/ && echo $_`
आवश्यकतानुसार मध्यवर्ती निर्देशिकाएँ बनाने का -p
विकल्प mkdir
।
के बिना-p
पथ में सभी निर्देशिकाओं के उपसर्ग पहले से मौजूद होना चाहिए।
बैकटिक्स के अंदर सब कुछ ``
निष्पादित होता है और आउटपुट आपके कमांड के हिस्से के रूप में इन-लाइन में वापस आ जाता है।
चूंकि mkdir
कुछ भी वापस नहीं आता है, केवल आउटपुट echo $_
को कमांड में जोड़ा जाएगा।
$_
पहले निष्पादित कमांड के अंतिम तर्क का संदर्भ देता है।
इस स्थिति में, यह आपकी नई निर्देशिका ( ~/bar/baz/
) को दिए गए पथ को वापस कर देगाmkdir
कमांड ।
मैंने एक गंतव्य को दिए बिना एक संग्रह को अनज़िप कर दिया और
demo-app.zip
अपनी वर्तमान निर्देशिका को छोड़कर सभी फाइलों को एक नई निर्देशिका में स्थानांतरित करना चाहा
demo-app
।
निम्नलिखित लाइन चाल है:
mv `ls -A | grep -v demo-app.zip` `mkdir -p demo-app && echo $_`
ls -A
छिपी हुई फ़ाइलों सहित सभी फ़ाइल नाम लौटाता है ( निहित के अलावा .
और..
)।
पाइप प्रतीक |
का उपयोग ls
कमांड के आउटपुट grep
( एक कमांड-लाइन, सादा-पाठ खोज उपयोगिता ) को पाइप करने के लिए किया जाता है । ध्वज को निर्देश खोजने के लिए और सभी फ़ाइल नाम को छोड़कर वापस जाने के लिए ।
फ़ाइलों की उस सूची को कमांड कमांड में जोड़ा जाता है, जो कि कमांड कमांड में ले जाए जाते हैं । लक्ष्य तर्क नई निर्देशिका का उपयोग करने और आउटपुट का उपयोग करने के लिए पारित करने का मार्ग है ।
-v
grep
demo-app.zip
mv
mkdir
$_
echo