Bash 탭 완성은 이전에 없었을 때“~”를“/ home / ___”로 확장합니다.


13

이전에을 입력 ~/biTab하면 전에로 바뀌 었습니다 ~/bin. 그러나, 오늘은 회전을 시작 ~/biTab으로 /home/username/bin.

나는 오히려 전자를 가지고 싶지만, 무슨 일이 일어 났는지 모르겠습니다 ... 내 bash 완성을 편집하는 스크립트를 추가했지만 ~./bashrc서버 에서 제거 하고 서버를 다시 시작했습니다.

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

편집 그래서 나는 이것이 원인이 될 수있는 것을 발견했습니다 ... 그것은 /etc/bash_completion그와 관련이 있습니다. 내가 할 때 bind -v물결표 확장이 꺼져 있음을 보여줍니다.

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

답변:


8

사용중인 배포판에 대해서는 언급하지 않았지만 (질문에 해당 정보를 포함하십시오) 시스템에서 업데이트를 실행 한 후에도 비슷한 동작을 보았습니다.

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

/etc/bash_completion다음 패키지 업그레이드시 잠재적으로 덮어 쓸 수있는 을 수정하는 대신 ~/.inputrc물결표 확장을 비활성화하도록 만들 수 있습니다 . bash_completion-1.3.6이 Fedora 16 상자에서 이것을 존중한다는 것을 확인했습니다.

set expand-tilde off

편집하다

마일리지는에 따라 다를 수 있습니다 ~/.inputrc. Bash에는 완료하려는 작업 (예 : 프로그램 대 파일 또는 디렉토리)에 따라 해당 동작을 무시할 수있는 기능이 있습니다. 수퍼 유저 SE에 대한설명vim명령을 자동 완성 할 때 비슷한 질문을 해결합니다 . 이 경우 원본 포스터 는 자신 의 사용자 정의 기능을 추가하여 문제해결 했습니다 ~/.bashrc.


1
마지막 비트는 배포판에 따라 다릅니다. 일부 배포판 (예 : Gentoo)은 실제로 올바른 작업을 수행하며 파일 /etc이 변경된 경우 파일을 덮어 쓰지 않습니다 .
njsg

1
Red Hat 파생 상품도 마찬가지입니다. 구성 변경이 중요하지 않은 경우 대체 구성 파일 xxx파일이 호출 xxx.rpmnew됩니다. 구성의 변화가 정말 필요한 경우, 다음 원래는 이름이 변경 xxx.rpmsavexxx패키지에서 파일입니다.
vonbrand

expand-tilde가 작동하지 않아서 컴퓨터에서 확장을 수행 한 코드를 삭제했습니다. 아마도 시스템 업그레이드에서는 깨질 것이지만 : |
저스틴 L.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.