คุณสามารถใช้ความสามารถในการทดแทนข้อความของเชลล์ ในbashคุณสามารถใช้สัตว์ร้ายเช่น:
mv blob/a_long_directory_name/c/xx !#:$:gs^c/xx^evenmore/yy
วิธีทำลายมัน:
!# บรรทัดปัจจุบันที่พิมพ์จนถึงตอนนี้
:$ขอให้เลือกคำสุดท้าย (แทนที่ด้วยตัวเลขnเพื่อเลือกnคำที่ ') ของสตริงภายใต้การพิจารณา ( !#ในกรณีนี้) คำสุดท้ายของบรรทัดที่พิมพ์จนถึงตอนนี้จะเป็นคำก่อนหน้า
:gs^xx^yyทำ global ( g) การแทนที่แบบข้อความ ( s) กับคำที่เป็นผลลัพธ์แทนที่ 'xx' ด้วย 'yy' ^เป็นเพียงตัวคั่นสำหรับsคำสั่งเพื่ออนุญาตให้ใช้/ในรูปแบบของคุณ
วิธีนี้เป็นวิธีที่ค่อนข้างกว้างกว่าปกติเล็กน้อยซึ่งช่วยให้คุณแทนที่ส่วนใดส่วนหนึ่งของเส้นทาง ('xx') ด้วยคำอื่น ๆ ('yy')
ในที่สุดเช่นเดียวกับการปรับแต่งประวัติใด ๆ ก็เป็นการดีที่มีชุดตัวเลือกเชลล์ที่เหมาะสม (เช่นใน~/.bashrc) ในกรณีนี้
shopt -s histverify
จะแสดงบรรทัดที่แก้ไขหลังจากที่คุณกด Return เพื่อให้คุณยังสามารถแก้ไขได้และตรวจสอบข้อผิดพลาด
ทำไมคุณถึงใช้สิ่งก่อสร้างแบบที่ฉันไม่แน่ใจ
even_moreเส้นทางญาติ ...