나는 보통 파일이나 디렉토리 이름 앞에 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
마지막 게임을 완료하세요.