Це схоже на помилку в 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
дві локації та якось очікуєте, що це зрозуміє, яке саме ви хочете.