Điều này trông giống như một lỗi trong Bash: theo man builtins
hành vi cũ là hành vi đúng.
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.
Bạn có thể báo cáo lỗi trong bug-bash
danh sách gửi thư; biết thêm chi tiết tại đây .
Trên thực tế, lỗi đã được báo cáo (từ lâu). Nếu bạn muốn một Bash cố định ngay bây giờ, bây giờ, bây giờ , đây là cách thực hiện đúng (được thử nghiệm vào ngày 17.10, cũng nên hoạt động trên những người khác).
Đầu tiên tạo một thư mục để làm việc, ví dụ:
mkdir ~/bash
cd ~/bash
Nhận gói nguồn và các phụ thuộc xây dựng:
apt-get source bash
sudo apt-get build-dep bash
cd bash-4.4
Chỉnh sửa config-top.h
để thay đổi điều này (nên là dòng 32)
#define CD_COMPLAINS
đến đây
/* #define CD_COMPLAINS */
Chỉnh sửa debian/changelog
và thêm một mục như thế này ở trên cùng (bạn cũng có thể sử dụng lệnh 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
Những điểm quan trọng nhất là để phụ thêm +foo
cho hiện số phiên bản ( foo
có thể là bất kỳ chuỗi các chữ thường, và hãy cẩn thận nếu bạn sử dụng dch -i
, nó sẽ tăng số cuối cùng, vì vậy bạn cần để trở lại nó vào một hiện hành) và sử dụng tên phát hành chính xác ( artful
ở đây). Cuối cùng, chạy dpkg-source --commit
.
Sau đó, bạn có thể chạy debuild
lệnh và nếu mọi thứ đều ổn (lỗi về debsign
có thể bỏ qua), bạn nên có một số .deb
s trong thư mục cha, bạn có thể cài đặt như bình thường (không cần phải cài đặt tất cả, chỉ cần bạn cài đặt chúng có ngay bây giờ, sử dụng dpkg -l | grep bash
để tìm hiểu).
Lưu ý rằng số phiên bản của gói mới được đặt để bạn sẽ tự động nhận được bất kỳ bản cập nhật nào trong tương lai bash
; nếu bản cập nhật không khắc phục được sự cố, bạn phải lặp lại quy trình trên.
(Câu trả lời này lần đầu tiên được đăng trên câu hỏi trùng lặp này .)
cd
hai địa điểm, và bằng cách nào đó mong đợi nó sẽ tìm ra vị trí bạn muốn.