bash: सबसे हाल ही में संशोधित बाल निर्देशिका के लिए सीडी


10

आश्चर्य है कि "कहने के लिए एक आसान और / या पोर्टेबल तरीका है" सबसे हाल ही में संशोधित बाल निर्देशिका में परिवर्तन। मैं ls और awk का उपयोग कर सकता हूं लेकिन शायद एक बेहतर तरीका है।

cd $( ls -ltrd */ | tail -1 | awk '{ print $8 }' )

मुझे "आउटपुट फ़ाइलों" निर्देशिका में सैकड़ों उपनिर्देशिकाओं के साथ एक कमांड चलाना होगा और 99% समय मैं सबसे हाल ही में बदली गई निर्देशिका में जाना चाहता हूं। मुझे नहीं पता कि निर्देशिकाओं के नाम अग्रिम में क्या होंगे।


1
क्यों नहीं cd $(ls -v1td */ | head -1)?
पाब्लो कास्टेलैज़ी

अच्छी बात ... मैं ls विकल्पों से उतना परिचित नहीं हूँ जितना मुझे होना चाहिए ...
23

जवाबों:


13

मान लें कि आपकी निर्देशिका में कोई भी वर्ण नहीं है:

cd  "$(\ls -1dt ./*/ | head -n 1)"

(ध्यान दें कि यह निर्देशिकाओं के प्रति सहानुभूति पर भी विचार करेगा)।

यदि आपको zsh पर स्विच करने में कोई आपत्ति नहीं है:

cd ./*(/om[1])

या पहले उदाहरण के रूप में निर्देशिका में सहानुभूति शामिल करने के लिए:

cd ./*(-/om[1])

0

का आनंद लें।

cdd(){ 
  # cd into the last directory modified/created in pwd
   ls -p | grep / | tail -1 | pbcopy; str=$(pbpaste); cd $str
}

क्लिपबोर्ड पर निर्देशिका का नाम क्यों रखा गया है? इसके अलावा, क्या होता है अगर निर्देशिका नाम में एक स्थान होता है - इन दिनों काफी सामान्य घटना।
रोज़ा

यदि आप चाहें तो क्लिपबोर्ड का उपयोग करके आगे के संचालन में आसानी के लिए अनुमति देता है।
jasonleonhard

यदि आप वास्तव में चाहते हैं तो आप अपेक्षाकृत आसान क्षेत्रों को जोड़ सकते हैं। {प्रिंट $ 9} के बजाय आप {प्रिंट $ 9, $ 10, $ 11} का उपयोग कर सकते हैं।
जस्सोनलोनहार्ड

मैंने अपने जवाब को सफेद स्थान के लिए संशोधित किया है।
जसोनलोनहार्ड

यहाँ एक किसी न किसी तरह व्याख्या है: explainshell.com/...
jasonleonhard

-1

इस लघु संस्करण कमांड का प्रयास करें

cd $(ls -t | head -n 1)   

यह केवल तभी काम करता है जब वर्तमान निर्देशिका में सबसे हाल ही में संशोधित फ़ाइल प्रकार निर्देशिका (या निर्देशिका के लिए सिमलिंक) की है और इसका नाम रिक्त या वाइल्डकार्ड या नईलाइन नहीं है और इसके साथ शुरू नहीं होता है, इसलिए यह शायद ही एक सुधार है। पहले से ही स्वीकृत जवाब।
स्टीफन चेज़लस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.