ดูเหมือนว่าข้อบกพร่องใน Bash: สำหรับman builtins
พฤติกรรมเก่าคือสิ่งที่ถูกต้อง
cd [-L|[-P [-e]] [-@]] [dir]
Change the current directory to dir. if dir is not supplied,
the value of the HOME shell variable is the default. Any
additional arguments following dir are ignored.
คุณสามารถรายงานข้อผิดพลาดในbug-bash
รายชื่อผู้รับจดหมาย; รายละเอียดเพิ่มเติมที่นี่
ที่จริงแล้วรายงานข้อผิดพลาด (นานมาแล้ว) หากคุณต้องการ Bash คงที่ตอนนี้ตอนนี้ต่อไปนี้เป็นวิธีการทำอย่างถูกต้อง (ทดสอบเมื่อ 17.10 ควรทำงานกับผู้อื่นด้วย)
สร้างไดเรกทอรีเพื่อทำงานก่อนเช่น:
mkdir ~/bash
cd ~/bash
รับแพ็กเกจซอร์สและการสร้างบิลด์:
apt-get source bash
sudo apt-get build-dep bash
cd bash-4.4
แก้ไขconfig-top.h
เพื่อเปลี่ยนแปลงสิ่งนี้ (ควรเป็นบรรทัดที่ 32)
#define CD_COMPLAINS
สำหรับสิ่งนี้
/* #define CD_COMPLAINS */
แก้ไขdebian/changelog
และเพิ่มรายการเช่นนี้ที่ด้านบน (คุณสามารถใช้คำสั่งdch -i
):
bash (4.4-5ubuntu1+cd) artful; urgency=medium
* Fix cd.
-- Firas Kraiem <firas@fkraiem.org> Thu, 04 Jan 2018 21:11:22 +0900
จุดที่สำคัญที่สุดที่จะผนวก+foo
กับปัจจุบันหมายเลขรุ่น ( foo
สามารถเป็นสตริงของตัวอักษรตัวพิมพ์เล็กใด ๆ และต้องระวังถ้าคุณใช้dch -i
มันจะเพิ่มจำนวนที่ผ่านมาดังนั้นคุณต้องย้อนกลับไปยังหนึ่งในปัจจุบัน) และการใช้งาน ชื่อรุ่นที่ถูกต้อง ( artful
ที่นี่) dpkg-source --commit
สุดท้ายวิ่ง
จากนั้นคุณสามารถเรียกใช้debuild
คำสั่งและหากทุกอย่างเป็นไปด้วยดี (ข้อผิดพลาดเกี่ยวกับdebsign
สามารถถูกละเว้น) คุณควรมีบางส่วน.deb
ในไดเรกทอรีหลักซึ่งคุณสามารถติดตั้งได้ตามปกติ (ไม่จำเป็นต้องติดตั้งพวกเขาทั้งหมดเพียงคนที่คุณ มีตอนนี้ใช้dpkg -l | grep bash
เพื่อค้นหา)
โปรดทราบว่าหมายเลขรุ่นของแพคเกจใหม่มีการตั้งค่าเพื่อให้คุณโดยอัตโนมัติจะได้รับการปรับปรุงในอนาคตใด ๆ ที่จะbash
; หากการอัปเดตไม่สามารถแก้ไขปัญหาได้คุณจะต้องทำซ้ำขั้นตอนข้างต้น
(คำตอบนี้ถูกโพสต์ครั้งแรกในคำถามที่ซ้ำกันนี้)
cd
ระบุสถานที่สองแห่งและคาดหวังว่ามันจะเป็นสิ่งที่คุณต้องการ