ดูเหมือนว่าข้อบกพร่องใน 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ระบุสถานที่สองแห่งและคาดหวังว่ามันจะเป็นสิ่งที่คุณต้องการ