Це схоже на помилку в 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в батьківському каталозі деякі s, які ви можете встановити як зазвичай (немає необхідності встановлювати всі, лише ті, які ви є зараз; використовуйте, dpkg -l | grep bashщоб дізнатися).
Зверніть увагу, що номер версії нового пакета встановлений таким чином, що ви автоматично отримаєте будь-яке майбутнє оновлення bash; якщо оновлення не усуне проблему, вам доведеться повторити описаний вище процес.
(Ця відповідь була вперше опублікована на це повторне запитання .)
cdдві локації та якось очікуєте, що це зрозуміє, яке саме ви хочете.