ฉันต้องการสร้างฟังก์ชั่นสั้น ๆ เพื่อทำสิ่งต่อไปนี้ สมมติว่าฉันย้ายไฟล์ 'file.tex' ไปยังไดเรกทอรีเอกสารของฉัน:
mv file.tex ~/Documents
จากนั้นฉันต้องการไปcd
ยังไดเรกทอรีนั้น:
cd ~/Documents
ฉันต้องการที่จะพูดคุยนี้ไปยังไดเรกทอรีใด ๆ เพื่อให้ฉันสามารถทำได้:
mv file.tex ~/Documents
follow
และให้follow
คำสั่งอ่านปลายทางจากคำสั่งก่อนหน้าจากนั้นดำเนินการตามนั้น สำหรับไดเรกทอรีง่าย ๆ มันไม่ได้ประหยัดเวลามาก แต่เมื่อทำงานกับไดเรกทอรีที่ซ้อนกันมันจะยิ่งใหญ่มากที่จะสามารถใช้
mv file.tex ~/Documents/folder1/subfolder1
follow
ฉันคิดว่ามันค่อนข้างง่ายและฉันสามารถทำสิ่งนี้:
follow()
{
place=`history 2 | sed -n '1p;1q' | rev | cut -d ' ' -f1 | rev`
cd $place
}
แต่ดูเหมือนว่าจะไม่ทำงาน ถ้าฉันก้อง$place
ฉันจะได้รับสตริงที่ต้องการ (ฉันกำลังทดสอบด้วย~/Documents
) แต่คำสั่งสุดท้ายกลับมา
No such file or directory
ไดเรกทอรีอยู่แน่นอน ฉันกำลังสูญเสีย คุณช่วยฉันออก
cd
alt + .
เพื่อแทนที่โทเค็นสุดท้ายของคำสั่งก่อนหน้า ทำซ้ำเพื่อย้อนกลับไปในประวัติศาสตร์ของโทเค็นสุดท้าย (ฉันพูดโทเค็นไม่ได้หาเรื่องเพราะfoo &
คว้า&
เป็นโทเค็นสุดท้าย) คุณสามารถใช้อาร์กิวเมนต์ที่เป็นตัวเลข (เช่น escape-3 alt +. เป็นต้น)
file.tex
อยู่ในตำแหน่งเดิมsymlinksเป็นทางเลือกที่ดีมากเนื่องจากคุณต้องลิงก์ครั้งเดียวแล้วมันจะชี้ไปที่เวอร์ชันล่าสุดเสมอ