Это похоже на ошибку в 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
два местоположения и каким-то образом ожидаете, что оно определит, какое вы хотите.