Заполнение вкладки Bash расширяет «~» на «/ home / ___», когда это не было

Раньше, если я набрал ~/bi Tab раньше, он превратится в ~/bin . Однако сегодня он начал включать ~/bi Tab в /home/username/bin .

Я бы предпочел, чтобы он был первым, но я не уверен, что произошло … Я добавил скрипт для редактирования моего завершения bash, но я удалил его из моего ~./bashrc и перезапустил сервер.

Кто-нибудь знает, что может вызвать это? Или как я его изменил?

EDIT Итак, я узнал, что может вызвать это … это связано с /etc/bash_completion и тому подобным. Когда я bind -v , он показывает, что расширение тильды отключается.

Поэтому я думаю, что если я отредактирую это (вроде как взломать), он исчезнет. Но это ничего не удовлетворяет – как это произошло, в первую очередь? Я никогда не запускал ничего как sudo , и после нескольких отключений и перезапуска это поведение сохраняется.

Вы не указываете, какой дистрибутив вы используете (просьба указать эту информацию в своем вопросе), но я видел подобное поведение после запуска обновлений в моих системах.

Мое лучшее предположение – когда вы запускали системное обновление, или если оно запускалось автоматически, пакет обновления «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 есть функции, которые могут переопределить это поведение в зависимости от того, что вы пытаетесь выполнить (например, программа против файла или каталога). В этом обсуждении Super User SE рассматривается аналогичный вопрос при автозавершении команды vim . В этом случае исходный плакат решил свою проблему , добавив пользовательскую функцию к своему ~/.bashrc .