Если у меня есть следующие файлы в каталоге:
$ ls
a-file-1
b-file-2
something-else
А я типа
$ cat *file*<TAB>
Линия неожиданно обновляется до
$ cat a-file-1 |
(pipe обозначает курсор), хотя glob также соответствует b-file-2
. Немного странно, если я запускаю другую оболочку, вместо этого я получаю список совпадений на двойной вкладке (что я предпочитаю):
$ cat *file*<TAB><TAB>
a-file-1 b-file-2
$ cat *file*|
Q: Как настроено это поведение? Я хотел бы иметь второе поведение в оболочке входа в систему.
Кажется, что оболочки входа в систему получают первое поведение, а оболочки, не входящие в систему, получают второе. Тем не менее, мой ~/.bash_profile
делает не больше, чем старт ~/.bashrc
. (У меня нет .profile
.) Кажется, где-то я как-то меняю конфигурацию.
shopt
, что только в оболочке входа в систему extglob on
, hostcomplete off
и login_shell on
но их изменение не меняет вышеуказанное поведение set -o
вывод такой же. Попробовал set show-all-if-ambiguous on
но это не имело никакого эффекта. Я использую Ubuntu 14.04.1.
Обновление относительно комментария @mpy.
В оболочке без регистрации, когда я включаю базовый каталог в глобус и нажимаю Alt-G, поведение отличается от того, когда я использую TAB TAB. Именно это последнее поведение я хочу настроить в оболочке входа в систему.
Alt - G:
$ ls dir/*file*<Alt-G>
обновления для
$ ls dir/|
удаляя шарик и не печатая спички. Принимая во внимание, что TAB TAB выводит совпадения
$ ls dir/*file*<TAB><TAB>
a-file-1 b-file-2
$ ls dir/*file*|