आप वर्तमान कमांड लाइन पर शब्दों को संदर्भित करने के लिए इतिहास विस्तार का भी उपयोग कर सकते हैं :
convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.pdf !#:$:r.png
- ईवेंट डिज़ाइनर का
!#
तात्पर्य है अब तक टाइप की गई कमांड लाइन से है
- शब्द पदनाम
$
अंतिम शब्द (विस्तार से पहले) इंगित करता है
- संशोधक
r
फ़ाइल एक्सटेंशन को हटा देता है। यह पाठ के अंत को भी चिह्नित करता है, जिसे इतिहास विस्तार होने पर प्रतिस्थापित किया जाता है।
.png
नया विस्तार है। यह स्वयं विस्तार से संबंधित नहीं है।
जब यह लाइन चलाई जाती है, !#:$:r
तो आपकी पीडीएफ फाइल का नाम एक्सटेंशन द्वारा बदल दिया जाता है, इस प्रकार प्रश्न से कमांड बनाई जाती है:
convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.pdf this_is_a_very_long_filename_of_my_pdf_file.png
इस लाइन को फिर सीधे निष्पादित किया जाता है।
यदि आप निष्पादन से पहले, इतिहास विस्तार के बाद कमांड की जांच करना चाहते हैं, तो उपयोग करें
setopt histverify
यह विस्तारित लाइन को निष्पादित करने के बजाय संपादन बफर में पुनः लोड करेगा।
नोट: किसी भी अन्य विस्तार के विपरीत, इतिहास का विस्तार इतिहास को सहेजे जाने से पहले किया जाता है। तो आपके रूप में नहीं के रूप में echo !#
दिखाई देगा ।echo echo
echo !#
$HISTFILE