Sembra un bug in Bash: per man builtins
il vecchio comportamento è quello corretto.
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.
Puoi segnalare il bug sulla bug-bash
mailing list; maggiori dettagli qui .
In realtà, il bug è stato segnalato (molto tempo fa). Se vuoi un Bash fisso ora, ora, ora , ecco come farlo correttamente (testato su 17.10, dovrebbe funzionare anche su altri).
Innanzitutto crea una directory su cui lavorare, ad esempio:
mkdir ~/bash
cd ~/bash
Ottieni il pacchetto sorgente e le dipendenze di compilazione:
apt-get source bash
sudo apt-get build-dep bash
cd bash-4.4
Modifica config-top.h
per cambiarlo (dovrebbe essere la riga 32)
#define CD_COMPLAINS
a questa
/* #define CD_COMPLAINS */
Modifica debian/changelog
e aggiungi una voce come questa in alto (puoi anche usare il 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
I punti più importanti sono aggiungere +foo
al numero di versione corrente ( foo
può essere una qualsiasi stringa di lettere minuscole; e fai attenzione se lo usi dch -i
, aumenterà l'ultimo numero, quindi devi ripristinarlo a quello corrente) e usare il nome di rilascio corretto ( artful
qui). Infine, corri dpkg-source --commit
.
È quindi possibile eseguire il debuild
comando e se tutto va bene (gli errori su debsign
possono essere ignorati) dovresti avere alcuni .deb
s nella directory principale, che puoi installare come al solito (non è necessario installarli tutti, solo quelli che ora, usa dpkg -l | grep bash
per scoprirlo).
Si noti che il numero di versione del nuovo pacchetto è impostato in modo da ricevere automaticamente eventuali aggiornamenti futuri bash
; se l'aggiornamento non risolve il problema, è necessario ripetere la procedura sopra descritta.
(Questa risposta è stata pubblicata per la prima volta su questa domanda duplicata .)
cd
due posizioni, e in qualche modo ti aspetti che capisca quale vuoi.