Bash 프롬프트의 자동 완성 파일 이름

Bash 프롬프트의 자동 완성 파일 이름

나는 보통 파일이나 디렉토리 이름 앞에 2014-04-20 file_name.doc.

따라서 폴더에는 일반적으로 날짜로 시작하는 여러 개의 파일과 디렉터리가 있습니다.

그러나 명령줄(내 경우에는 bash)에서 이러한 폴더에 액세스할 때 자동 완성을 누르기 전에 모든 날짜를 입력해야 하기 때문에 약간 짜증납니다 TAB.

내가 원하는 것은 파일 이름의 일부만 입력한 다음 TAB시스템을 누른 후 프롬프트에 전체 이름을 입력하는 것입니다.

해결책이 있나요?

답변1

와일드카드 패턴을 완성합니다.

ls *file_n*Tab

패턴이 여러 파일과 일치하는 경우 선택하라는 메시지가 표시되거나 완료 옵션에 따라 목록이 명령줄에 삽입됩니다. 작업을 취소하고 더 ​​많은 문자를 입력하여 일치 항목을 제한하려면 완료를 실행 취소( Ctrl+ _)하세요.

상황에 맞는 완성을 사용하는 경우 Tab와일드카드는 기본적으로 확장되지 않지만(이를 수정하도록 설정할 수 있는 옵션이 있을 수 있음) Ctrl+는 입니다 X *.

답변2

이를 사용하여 complete원하는 작업을 수행할 수 있습니다(기존 완료 스크립트는 적절한 패키지를 설치한 후 debian 아래의 /etc/bash_completion.d에 있습니다).

기본 예제는 apache2.2-common을 확인할 수 있습니다.

https://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html

답변3

\eg( )를 사용하는 경우 glob-complete-word두 번째 별표를 입력할 필요가 없거나 *file_n\eg대신 을 입력할 수 있습니다 *file_n*<tab>.

여러 파일이 패턴과 일치하는 경우 첫 번째 일치 menu-complete또는 마지막 일치를 삽입할 수 있습니다 menu-complete-backward. 예를 들어, 다음을 추가하면

"\et": menu-complete
"\er": menu-complete-backward

~/.inputrc, *file_n*\et첫 번째 게임을 완료하고 *file_n*\er마지막 게임을 완료하세요.

관련 정보