ไม่มีฟังก์ชันในตัว แต่คุณสามารถใช้ฟังก์ชันการทำงานของเชลล์เพื่อช่วยให้คุณไม่ต้องพิมพ์อาร์กิวเมนต์ของcd
คำสั่งอีกครั้งหลังจากทำงานmkdir
:
- พิมพ์
cd
แล้วEsc .(หรือAlt+ .) เพื่อแทรกอาร์กิวเมนต์ล่าสุดจากคำสั่งก่อนหน้า
cd !$
รันcd
บนอาร์กิวเมนต์สุดท้ายของคำสั่งก่อนหน้า
- กดUpเพื่อระลึกถึงบรรทัดคำสั่งก่อนหน้านี้แล้วแก้ไขมันจะเปลี่ยนเข้าสู่
mkdir
cd
คุณสามารถกำหนดฟังก์ชั่น make-and-change-directory ง่ายๆใน~/.bashrc
:
mkcd () { mkdir "$1" && cd "$1"; }
โหลดของคุณ.bashrc
( . ~/.bashrc
) mkcd new-directory
หรือทุบตีเริ่มต้นและตอนนี้คุณสามารถพิมพ์
เวอร์ชั่นง่าย ๆ นี้ล้มเหลวในบางกรณีที่ผิดปกติเกี่ยวกับชื่อไดเรกทอรีแปลก ๆ..
และลิงค์สัญลักษณ์ นี่คือสิ่งที่ทำ สำหรับคำอธิบายดูยูนิกซ์และลินุกซ์รุ่นของคำถามนี้
mkcd () {
case "$1" in
/*) mkdir -p "$1" && cd "$1";;
*/../*) (cd "./${1%/../*}/.." && mkdir -p "./${1##*/../}") && cd "$1";;
../*) (cd .. && mkdir -p "${1#.}") && cd "$1";;
*) mkdir -p "./$1" && cd "./$1";;
esac
}
mkdir "NewDir" && cd "$_"
ทำงานได้ดีกว่าmkdir "NewDir" && cd "NewDir"
การเติมข้อความอัตโนมัติไม่ทำงาน BTW "$ _" คืออะไร?