ZSH:
หาก you'r ใช้zsh
alias -g ,,=".."
คือสิ่งที่คุณต้องการ แต่นี้จะทำให้เกิด ",," ที่จะขยายตัวได้ทุกที่ไม่เพียง cd
แต่เมื่อใช้กับ
จากman zshbuiltins
:
หากมีการ -g
ตั้งค่าสถานะกำหนดนามแฝงส่วนกลาง นามแฝงส่วนกลางจะถูกขยายแม้ว่าจะไม่เกิดขึ้นในตำแหน่งคำสั่ง
ทุบตี:
หากถูก จำกัด ไว้ที่bash
(เนื่องจากคำถามถูกแท็กด้วยbash ) อ่านต่อไปนี้:
นี่เป็นวิธีการแก้ปัญหาด้วยนามแฝงตามที่ได้รับการร้องขออย่างไรก็ตามการทำเช่นนี้จะทำได้มากกว่าที่ต้องการอาจทำให้ผู้ใช้หงุดหงิด (ดูคำเตือนที่ท้ายโพสต์ของฉัน)
ข้อความman bash
:
หากอักขระตัวสุดท้ายของค่านามแฝงเป็นค่าว่างคำว่าคำสั่งถัดไปถัดจากนามแฝงจะถูกตรวจสอบด้วยว่ามีการขยายสมนามหรือไม่
ดังนั้นมันพอที่จะนามแฝงcd
ที่มีพื้นที่พิเศษ (เพื่อช่วยให้การขยายตัวของการโต้แย้งต่อไปของมัน) แล้วนามแฝงไป,,
..
เห็นไหมว่า
alias cd='cd '
alias ,,='..'
ให้สิ่งที่คุณต้องการ
โปรดทราบว่าสิ่งนี้ถูกต้องไม่เพียง แต่สำหรับbash
(และalias
การนำไปใช้) แต่เชลล์ที่ทำงานร่วมกันได้กับ POSIX ทั้งหมด ยกตัวอย่างจากman 1p alias
(คู่มือไม่ได้อธิบายคุณสมบัตินี้อย่างชัดเจนผ่านตัวอย่าง):
ตั้งค่า nohup เพื่อให้สามารถจัดการกับอาร์กิวเมนต์ที่เป็นชื่อนามแฝง:
alias nohup="nohup "
คำเตือน:
ในฐานะที่เขียน @PeterCordes ในความคิดเห็นของเขาโดยอัตโนมัติจะสาเหตุอื่น ๆcd
นามแฝงว่าจะขยายตัวเมื่อเขียนขึ้นหลังจากที่ มันอาจทำให้คุณต้องเขียนcd \grep
ถ้าคุณต้องการที่จะเปลี่ยนไดเรกทอรีให้เป็นหนึ่งในชื่อgrep
ของคุณ แต่เป็นนามแฝงสำหรับgrep
grep --color=auto
หากไม่มีแบ็กสแลชcd
จะรายงานข้อผิดพลาด "มีอาร์กิวเมนต์มากเกินไป" (คุณไม่สามารถcd
ไดเรกทอรีสองไดเรกทอรีพร้อมกันได้)!
$ ,,
bash: ..: Is a directory
(ในคำอื่น ๆ ก็ไม่ได้ปฏิบัติการ.)