Я использую MSYS на Windows 7, и мне действительно нравится функция автозаполнения TAB консоли bash. Однако, похоже, что эта функция запрашивает все каталоги в $PATH Windows, требуя от меня значительно сузить свой выбор.

Есть ли способ, чтобы bash рассматривал только файлы в текущем каталоге?

1 ответ1

1

В bash (и во всех других оболочках с автозаполнением, насколько я знаю), когда вы начинаете вводить имя команды и нажимаете клавишу Tab, оболочка будет искать в каталогах в $PATH и возвращать команды, чье имя начинается с тем, что вы напечатали. Таким образом, вы можете запустить команду, не находясь в том же каталоге, где находится этот конкретный исполняемый файл. Это делает вашу жизнь намного проще.

Если вас интересуют только исполняемые файлы в текущем каталоге, просто добавьте ./ в начало введенного вами имени. ./ означает текущий каталог (по крайней мере, в системах * nix, я не уверен, что они изменили формат при портировании на windows), поэтому bash попытается развернуть имена файлов в текущем каталоге:

$ ls
foo.pl
$ foo <TAB> ## lists many possible completions
$ ./foo <TAB> ## only lists foo.pl

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .