मैं सीडी में आउटपुट को कैसे रीडायरेक्ट करूं?


11

क्या कमांड के आउटपुट को रीडायरेक्ट करना संभव है cd? उदाहरण के लिए, मैंने एक निर्देशिका का उपयोग करके खोज की locateऔर उसे रास्ता मिल गया। अब, एक cdरास्ता लिखने के बजाय , क्या मैं locateआउटपुट को पुनर्निर्देशित कर सकता हूं cd?

मैंने यह कोशिश की:

$ locate Descargas | grep Descargas$
/home/oliver/Descargas
$ locate Descargas | grep Descargas$ | cd
$ locate Descargas | grep Descargas$ > cd
$ locate Descargas | grep Descargas$ < cd
/home/oliver/Descargas
$ 

कोई भाग्य नहीं। यह शायद विशेष रूप से उपयोगी नहीं है, लेकिन मैं उत्सुक हूं।

जवाबों:


16

आप कमांड प्रतिस्थापन चाहते हैं, पुनर्निर्देशन नहीं:

cd "$(locate Descargas | grep -F 'Descargas$')"

के बीच $(और बिट्स )एक कमांड के रूप में चलाए जाते हैं और आउटपुट (किसी भी अंतिम न्यूलाइन को छीन लिया जाता है) को समग्र कमांड में प्रतिस्थापित किया जाता है।

यह 'बैक टिक्स' ("` ") के साथ भी किया जा सकता है:

cd "`locate Descargas | grep -F 'Descargas$'`"

डॉलर-परन सिंटैक्स आमतौर पर पसंद किया जाता है क्योंकि यह नेस्टेड स्थितियों से निपटने में आसान है:

# contrived
cd "$(grep '^dir: ' "$(locate interesting-places | head -1)" | sed 's/^[^ ]*//')"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.