2015-02-06 4 views
12

मैं कमांड लाइन पर नवीनतम फ़ाइल/निर्देशिका को जल्दी से एक्सेस करने का एक तरीका ढूंढ रहा हूं, अधिमानतः जेडएसएच में।वर्तमान निर्देशिका में नवीनतम प्रयुक्त फ़ाइल भरें

ls -d *(om[1]) 

मुझे बस यही देता है, और यदि मैं कमांड के साथ उपयोग करना चाहता हूं, उदा। कम * (ओम [1])

यह भी काम करता है।

हालांकि, यह सभी ब्रैकेट टाइप करने के लिए कठिन है, और मैं इस का उपयोग बहुत - इसलिए मैं इस स्ट्रिंग के लिए शॉर्टकट बनाने का एक तरीका ढूंढ रहा हूं।

मैं .zshrc-फ़ाइल

lf(){ 
ls -d *(om[1]) 
} 

में एक समारोह है, जो मैं इस तरह उपयोग कर सकते हैं बना लिया है:

less <$(lf) 
less <`lf` 

, लेकिन मैं यह अभी भी आदर्श से कम लगता है।

less |lf 

काम नहीं करता है।

क्या "हार्ड टू टाइप कैरेक्टर" के उपयोग के बिना नवीनतम फ़ाइल को त्वरित रूप से एक्सेस करने का कोई तरीका है? आदर्श रूप में, यह

less LATEST 

किसी भी विचार के साथ कुछ होगा?

उत्तर

14

आप _most_recent_file (^Xm) इस्तेमाल कर सकते हैं।

_most_recent_file (^ XM)

हाल ही में संशोधित कमांड लाइन पर पैटर्न (खाली हो सकता है) से मेल खाते फ़ाइल का नाम पूरा करें। यदि एक संख्यात्मक तर्क एन दिया गया है, तो एनटी सबसे हाल ही में संशोधित फ़ाइल को पूरा करें। ध्यान दें, अगर कोई है, हमेशा अद्वितीय है।

- मीटर - zshcompsys(1) BINDABLE COMMANDS

तो, हम Ctrl-X टाइपिंग के साथ हाल ही में फ़ाइल प्राप्त कर सकते हैं। उदाहरण के लिए:

% less ;# typing `CTRL-X m` here, we could get: 
% less newest-file-or-directory 

और हम यहाँ कुछ पैटर्न निर्दिष्ट कर सकते हैं, उदाहरण के लिए इतना:

% less *.log ;# when I want the newest *.log: 
% less newest.log 

हालांकि यह ~/.zshrc में कुछ autoload -Uz compinit; compinit होना आवश्यक है।

+1

बहुत अच्छा समाधान भी - मुझे इस बारे में पता नहीं था। मैं जवाब समकक्ष मानता हूं, लेकिन ग्लेन ने पहले जवाब दिया, इसलिए मैं उसका जवाब स्वीकार करूंगा। – Gerhard

संबंधित मुद्दे