Bash가 경로를 완성하면 그게 전부입니다.

Bash가 경로를 완성하면 그게 전부입니다.

파일 시스템 경로를 제외한 모든 것에 대해 bash 완료를 비활성화하는 방법은 무엇입니까?

하지만 길에 대해서도 설명을 원하지 않습니다.

예를 들어, 이렇게 하면:

# sh -f fo<tab>

foo.txt 파일이 있으면 작동하지 않지만 파일이 foo.sh이면 작동합니다. 나는 bash가 여기서 나를 "도우려고" 노력하고 있다고 생각합니다. 저는 오랫동안 Linux를 사용해 왔으며 bash가 제가 생각하는 것을 알고 있다고 가정하는 작업을 수행하는 것을 원하지 않습니다. zip 파일을 보거나 호스트 이름을 추측하는 것을 원하지 않습니다. 나는 단지 간단한 경로명 완성만을 원합니다. 그 이상은 아닙니다.

답변1

bashcomplete현재 셸의 자동 완성 동작을 제어하는 ​​내장 명령이 있습니다 . 배포판이나 시스템 관리자는 complete구성된 시작 파일(일반적으로 /etc/profile, /etc/bash.bashrc, ~/bash_profile, ~/bash_login, ~/.profile, ~/.bashrc)에 이러한 명령을 배치하여 대화형 셸을 구성할 수 있습니다.

이 기능을 영구적으로 비활성화하려면 해당 파일을 편집하여 해당 complete명령을 호출하지 않거나 자주 사용하는 명령만 호출할 수 있습니다.

대화형 세션의 한 인스턴스에 대해서만 "스마트" 자동 완성을 비활성화하려면 다음을 실행하십시오.

complete -r

그 회의에서.

관련 정보