"full -G"를 올바르게 사용하는 방법은 무엇입니까? [복사]

"full -G"를 올바르게 사용하는 방법은 무엇입니까? [복사]

나는 내 문제를 설명하기 위해 생각할 수 있는 가장 간단한 코드를 생성했습니다.

".cc"로 끝나는 파일을 처리하기 위해 "foo" 명령을 사용한다고 가정해 보겠습니다.

complete -G '*.cc' foo

이제 내 현재 디렉토리에 "foo.cc", "bar.cc" 및 "blah.cc"가 포함되어 있다고 가정해 보겠습니다. "foo"를 입력하고 Tab 키를 누르면 다음과 같은 결과가 나타납니다.

$ foo <tab><tab>
bar.cc   blah.cc  foo.cc   
$ foo 

이것이 내가 기대했던 것입니다. 하지만 첫 번째 문자 "b"를 입력하고 다시 시도하면 다음과 같습니다.

$ foo b<tab><tab>
bar.cc   blah.cc  foo.cc
$ foo b

-W처럼 "b"로 시작하는 결과로 필터링하지 않습니다.

찾을 수 있는 모든 것을 검색했지만 complete -G내 요구 사항에 맞는 예를 찾지 못했습니다. 이것이 일반적인 것이라고 확신합니다. 여기서 모범 사례는 무엇입니까?

답변1

알았어, 답을 찾았어bash 완료에 패턴을 추가하는 방법(압축 해제용)은 무엇입니까?

요약: "-G"는 거의 쓸모가 없습니다. 가장 좋은 방법은 "-f"를 사용하여 모든 파일을 일치시킨 다음 -X '!*.cc'를 사용하여 원하지 않는 파일을 제외하는 것입니다. 그런 다음 좋은 결과를 얻으려면 "-o plusdirs"를 추가하세요.

관련 정보