자동 완성은 항상 현재 디렉터리의 파일을 제안합니다.

자동 완성은 항상 현재 디렉터리의 파일을 제안합니다.

_longopt내장된 완성 기능(예: )을 사용하는 명령 에 대해 자동 완성을 사용하는 경우 mkdir셸은 필요한 제안 외에 항상 현재 디렉터리의 내용을 제안합니다.

예를 들어 내가 입력하면

mkdir ~/somedir

applications그런 다음 Tab을 두 번 누릅니다. Bash 제안: (현재 디렉토리 에 가 포함되어 있다고 가정 desktop)

applications/   desktop/     documents/
...
somedir_a/      somedir_b/

somedir_a정상적인 동작을 복원하고 bash가 다른 somedir_b파일/디렉터리 만 제안하고 제안하지 않도록 하려면 어떻게 해야 합니까 ?

배쉬 버전: GNU bash, version 5.0.11(1)-release (x86_64-redhat-linux-gnu)
배쉬 완성:2.8

답변1

nullglob이 동작은 .dll 파일에 있을 수 있는 셸 옵션으로 인해 발생할 수 있습니다 .bashrc.

그 이유는 이 동작을 활성화 _longopt시키는 함수 정의에 버그가 있기 때문입니다._longopt

해결 방법은 이 옵션을 비활성화하거나 _longopt기능을 직접 재정의하는 것입니다.

비슷한 효과가 여기에 설명되어 있습니다.nullglob이 탭 완성에 영향을 미치는 이유는 무엇입니까?, 하지만 이 옵션에 문제가 있다는 것을 알지 못하면 이 문제를 찾기가 어렵습니다.

편집 : 지적한대로@프라멀베리, 이것은알려진 문제그리고 bash-completion. 수정 사항은 릴리스에 있지만 2.9해당 릴리스는 아직 Fedora(및 아마도 다른 시스템)에서 사용할 수 없습니다.

관련 정보