Причина, по которой вы не получаете никаких завершений после ввода ba
, заключается в том, что вы не предшествовали ba
с команда cd
. Баш понимает, что ввод bar.js
или bar
не имеет смысла (один - это каталог, а другой файл bar.js
- либо отсутствует в $ PATH
и / или не имеет набора разрешений для исполняемого файла), поэтому он не дает вам никаких завершений вообще.
Однако, если перед именем каталога поставить cd
, bash увидит, что bar
подходит, и никакое другое имя не подходит, и выполнит полное завершение:
$ ls
bar bar.js
$ cd <TAB>
При в этот момент приглашение преобразуется в
$ cd bar/ # This line