Это похоже на ошибку в 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могут быть проигнорированы), вы должны иметь некоторые .debs в родительском каталоге, которые вы можете установить как обычно (нет необходимости устанавливать все из них, только те, которые вы теперь, используйте, dpkg -l | grep bashчтобы узнать).
Обратите внимание, что номер версии нового пакета установлен так, что вы будете автоматически получать любые последующие обновления bash; Если обновление не устраняет проблему, вам необходимо повторить описанный выше процесс.
(Этот ответ был впервые опубликован на этот дубликат вопроса .)
cdдва местоположения и каким-то образом ожидаете, что оно определит, какое вы хотите.