
파일 시스템 경로를 제외한 모든 항목에 대해 bash 완료를 비활성화하려면 어떻게 해야 합니까?
그러나 경로의 경우에도 나는 어떤 것도 해석되는 것을 원하지 않습니다.
예를 들어 다음과 같이 하면:
# sh -f fo<tab>
foo.txt 파일이 있으면 작동하지 않지만 파일이 foo.sh라면 작동합니다. 나는 bash가 여기서 나를 "도움"하려고 한다고 가정합니다. 나는 오랫동안 Linux를 사용해 왔으며 bash 완료로 인해 내가 생각하는 것을 알고 있다고 가정하는 작업을 수행하고 싶지 않습니다. zip 파일을 조사하거나 호스트 이름을 추측하는 것을 원하지 않습니다. 나는 단지 일반 경로 이름 완성만을 원하고 다른 것은 원하지 않습니다.
답변1
bash
complete
현재 쉘의 자동 완성 동작을 제어하는 내장 명령이 있습니다 . 배포판이나 시스템 관리자가 이러한 complete
명령을 구성된 시작 파일(전통적으로 /etc/profile
, /etc/bash.bashrc
, ~/bash_profile
, ~/bash_login
, ~/.profile
, )에 넣어 대화형 셸을 구성하도록 준비했을 수도 있습니다 ~/.bashrc
.
complete
이 기능을 영구적으로 비활성화하려면 이러한 명령을 호출하지 않도록(또는 원하는 명령만 호출하도록) 파일을 편집할 수 있습니다 .
대화형 세션의 한 인스턴스에 대해서만 "지능형" 자동 완성을 비활성화하려면 다음을 실행합니다.
complete -r
그 세션에서.