Bash 탭 완성은 이전에는 확장되지 않았던 "~"를 "/home/___"으로 확장합니다.

Bash 탭 완성은 이전에는 확장되지 않았던 "~"를 "/home/___"으로 확장합니다.

예전에는 을 입력하면 ~/biTab가 되던 ~/bin것이 오늘은 가 ~/biTab되기 시작했습니다 /home/username/bin.

전자를 선택하고 싶지만 무슨 일이 일어나고 있는지 잘 모르겠습니다... bash 완료를 편집하기 위해 스크립트를 추가했지만 내 스크립트에서 제거 ~./bashrc하고 서버를 다시 시작했습니다.

이런 일이 발생할 수 있는 원인을 아는 사람이 있습니까? 아니면 어떻게 다시 바꿀 수 있나요?

편집하다/etc/bash_completion그래서 이 문제의 원인이 무엇인지 알아냈습니다. 비슷한 것과 관련이 있는 것 같습니다. 이렇게 하면 bind -v물결표 확장이 꺼져 있다고 나옵니다.

그래서 이것을 편집하면 (해킹처럼) 사라질 것이라고 생각했습니다. 하지만 그것은 실제로 아무것도 만족시키지 못합니다. 애초에 이 변화가 어떻게 일어났습니까? 아무것도 실행한 적이 없으며 sudo여러 번 종료하고 다시 시작한 후에도 이 동작이 지속됩니다.

답변1

어떤 배포본을 사용하고 있는지 언급하지 않으셨지만(질문에 해당 정보를 포함해 주세요) 시스템에서 업데이트를 실행한 후 유사한 동작을 확인했습니다.

내 추측으로는 시스템 업데이트를 실행하거나 자동으로 실행되면 "bash-completion" 패키지가 업데이트되어 이 동작이 추가된다는 것입니다. Red Hat 파생 제품에서는 에서 이를 수행할 수 있습니다 /usr/share/doc/PACKAGENAME. 광산에서는 /usr/share/doc/bash-completion-1.3/CHANGES새로운 변경 사항이 변경 로그 형식을 통해 나열됩니다.

수정하는 대신 물결표 확장 비활성화를 생성할 수 있습니다 /etc/bash_completion. 이 확장은 다음 패키지 업그레이드 시 덮어쓰여질 수 있습니다. ~/.inputrcbash_completion-1.3.6이 내 Fedora 16 시스템에서 이를 따를 것임을 확인했습니다.

set expand-tilde off

편집하다

귀하의 마일리지가 다를 수 있습니다 ~/.inputrc. Bash의 기능은 수행하려는 작업(예: 프로그램 대 파일 또는 디렉터리)에 따라 이 동작을 재정의할 수 있습니다. 이것논의하다Superuser SE는 명령을 자동 완성할 때 비슷한 문제를 해결했습니다 vim. 이 경우 원본 포스터는그의 문제를 해결했다그에게 물어봄으로써 ~/.bashrc.

관련 정보