Isso parece um bug no Bash: man builtins
pelo comportamento antigo é o correto.
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.
Você pode relatar o erro na bug-bash
lista de discussão; mais detalhes aqui .
Na verdade, o bug foi relatado (há muito tempo). Se você deseja um Bash fixo agora, agora, agora , veja como fazê-lo corretamente (testado em 17.10, também deve funcionar em outros).
Primeiro, crie um diretório para trabalhar, por exemplo:
mkdir ~/bash
cd ~/bash
Obtenha o pacote de origem e as dependências de compilação:
apt-get source bash
sudo apt-get build-dep bash
cd bash-4.4
Edite config-top.h
para alterar isso (deve ser a linha 32)
#define CD_COMPLAINS
para isso
/* #define CD_COMPLAINS */
Edite debian/changelog
e adicione uma entrada como esta na parte superior (você também pode usar o comando 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
Os pontos mais importantes são anexar +foo
ao número da versão atual ( foo
pode ser qualquer sequência de letras minúsculas; e, se você usar dch -i
, ele aumentará o último número, portanto, será necessário revertê-lo para o atual) e usar o nome de versão correto ( artful
aqui). Finalmente, corra dpkg-source --commit
.
Em seguida, você pode executar o debuild
comando e, se tudo der certo (os erros debsign
podem ser ignorados), você deverá ter alguns .deb
s no diretório pai, que pode ser instalado normalmente (não há necessidade de instalar todos eles, apenas os que você tenha agora; use dpkg -l | grep bash
para descobrir).
Observe que o número da versão do novo pacote está definido para que você obtenha automaticamente qualquer atualização futura bash
; se a atualização não resolver o problema, você deverá repetir o processo acima.
(Esta resposta foi postada pela primeira vez nesta pergunta duplicada .)
cd
indica dois locais e, de alguma forma, espera que ele descubra qual deles você deseja.