Bash에서 와일드카드를 인라인으로 확장하는 방법은 무엇입니까?

Bash에서 와일드카드를 인라인으로 확장하는 방법은 무엇입니까?

Bash는 다음을 수행할 수 있다는 것을 기억합니다.

현재 디렉토리에 a, b, c라는 3개의 파일이 있다고 가정합니다.

$> somecommand *

그런 다음 키나 키 조합 또는 키 시퀀스를 누르면 와일드카드 문자 *가 온라인으로 다음과 같이 확장됩니다.

$> somecommand a b c

하지만 키 시퀀스를 기억하지 못하고 Google에서 검색할 수도 없습니다! 돕다!

답변1

glob-expand-word그렇지 않은 경우 키 시퀀스에 바인딩해야 합니다 . 일반적으로 다음과 같은 것을 추가합니다.

"\C-x*": glob-expand-word

도착하다 .inputrc.

현재 상태 문제를 확인하려면 다음과 같이 하세요.

bind -P | grep glob-expand-word

결과는 다음과 같습니다.

glob-expand-word can be found on "\C-x*".

이는 다음을 의미합니다.

Ctrl-x*

이것은 또한 작동할 가능성이 가장 높습니다:

Ctrl-xCtrl-*


bind -P자세한 내용은 설명서를 참조하세요 .

답변2

목록 완성을 찾고 있는 것 같습니다. 매뉴얼 페이지에서 bash:

 COMP_TYPE
     Set to an integer value corresponding to the type of completion
     attempted  that caused a completion function to be called: TAB,
     for normal completion, ?, for listing completions after succes‐
     sive  tabs, !, for listing alternatives on partial word comple‐
     tion, @, to list completions if the word is not unmodified,  or
     %,  for  menu  completion.   This variable is available only in
     shell functions and external commands invoked by  the  program‐
     mable completion facilities

따라서 일부 명령의 완료 기능이 어떻게 완료되는지에 따라 다릅니다.

답변3

set -o vibash 에서 사용하면 작동하지 않습니다 Ctrl-X*.

모드 에서는 set -o vi를 사용해야 합니다 Esc*.

관련 정보