ฉันใช้นามแฝงมานานแล้วสำหรับไดเรกทอรีที่เข้าถึงบ่อย
ฉันยังมีฟังก์ชั่นทุบตีที่เรียกว่า ccb (ย่อมาจากสร้างไฟล์ cd bat - นี่คือต้นกำเนิดใน dos / windows ที่เชลล์สคริปต์. bat ccb.bat จะสร้างอีกไฟล์. bat สำหรับการกระโดดไปยังไดเรกทอรีปัจจุบัน) ที่สร้าง / ผนวกนามแฝง (ในไฟล์. bash_aliases) ไปยังไดเรกทอรีปัจจุบัน
เช่น: $ ccb myfav จะสร้างนามแฝงไปยังไดเรกทอรีปัจจุบันด้วยนามแฝง myfav ในไฟล์. bash_aliases และจัดหาไฟล์. bashrc เพื่อให้นามแฝงพร้อมใช้งานทันที
ฉันเพิ่งพบโซลูชันใหม่ มันเป็นฟังก์ชั่นทุบตี
## USAGE : lj <your_dir>
### lj -- short for LongJump -- (kinda similar to a C function which would jump to an address outside of your current function)
function lj() {
pushd `find . -type d -name $1 -print | head -n 1`
}
$ lj deeply_nested_dir_name
สิ่งนี้ไม่จำเป็นต้องเรียนรู้อะไรจากการใช้งานครั้งก่อน ปัญหาที่อาจไม่สามารถแก้ไขได้คือ: หากมีมากกว่า 1 ไดเรกทอรีชื่อ "deep_nested_dir_name" ในแผนผังไดเรกทอรีย่อยมันจะข้ามไปยังอันดับที่ 1 ของไดเรกทอรีที่พบโดยการค้นหา
นอกจากนี้วิธีนี้จะไม่สามารถข้ามโครงสร้างไดเรกทอรีอื่นได้
ระหว่างนามแฝง hardcoded และ aliases ที่สร้างขึ้นและฟังก์ชัน lj () ใหม่นี้ความต้องการส่วนใหญ่ของฉันได้รับการดูแล
นี่คือฟังก์ชั่นทุบตี CCB () ของฉันสำหรับทุกคนที่ต้องการใช้มัน
function ccb() {
foo=$PWD
echo "" >> ~/.bash_aliases
echo "alias $1='pushd $foo > /dev/null'" >> ~/.bash_aliases
source ~/.bashrc
}
cd
และcd ..
?