Я не могу понять, как выполнить конкретный тип bash завершения работы - я использую GNU bash 4.4.12 (3) -release от cygwin.
Завершение, которое меня интересует in - это когда вы знаете конец имени файла, но не знаете его начало. Например, если имя файла - ABC1103.txt, и все, что вы помните, это то, что он заканчивается на '03 .txt ', вы должны иметь возможность ввести ...
ls -l *03.txt<TAB>
... и получить это расширен до ...
ls -l ABC1103.txt
, он работает до завершения при пустой подсказке bash. Например, если у меня есть каталог def1202 в моем текущем рабочем каталоге, я могу успешно заполнить имя каталога ...
*1202<TAB>
.. становится ...
def1202
.. Однако это НЕ работает для встроенных (например, echo) или внешних команд (например, / bin / echo). Например, все они не раскрываются ...
% which echo
echo is a shell builtin
% echo *03.txt<TAB>
% /bin/echo *03.txt<TAB>
% strings *03.txt<TAB>
примечание: в / usr / share / bash -completion / completions нет файла завершения 'ls'. Но / usr / share / bash -completion / completions / strings действительно существует.