Bash 选项卡完成将“~”扩展为“/home/___”,而之前没有

Jus*_* L. 15 bash autocomplete

以前,如果我~/biTab之前输入,它会变成~/bin. 然而,今天它开始~/biTab变成/home/username/bin.

我宁愿使用前者,但我不确定发生了什么......我确实添加了一个脚本来编辑我的 bash 完成,但我从我的中删除了它~./bashrc并重新启动了服务器。

有谁知道什么会导致这种情况发生?或者我怎么改回来?

编辑 所以我发现了可能导致这种情况的原因......它与/etc/bash_completion诸如此类的事情有关。当我这样做时bind -v,它显示波浪号扩展已关闭。

所以我想如果我编辑这个(有点像黑客),它就会消失。但这并不能真正满足任何事情——这种变化最初是如何发生的?我从来没有运行过任何东西sudo,在多次关机和重新启动后,这种行为仍然存在。

Geo*_*e M 10

您没有提到您使用的是什么发行版(请在您的问题中包含该信息),但在我的系统上运行更新后,我看到了类似的行为。

我最好的猜测是当您运行系统更新时,或者如果它自动运行,则“bash-completion”包已更新,从而添加了此行为。在 Red Hat 衍生产品中,您可以在/usr/share/doc/PACKAGENAME. 在 my 中/usr/share/doc/bash-completion-1.3/CHANGES,新更改通过更改日志格式列出。

/etc/bash_completion您可以创建~/.inputrc以禁用波浪号扩展,而不是修改,这可能会在下一次包升级时被覆盖。我确认 bash_completion-1.3.6 会在我的 Fedora 16 机器上兑现这一点。

set expand-tilde off
Run Code Online (Sandbox Code Playgroud)

编辑

您的里程可能因~/.inputrc。Bash 具有可以根据您尝试完成的内容(例如,程序与文件或目录)覆盖该行为的函数。这种讨论自动填入一个当上超级用户SE解决了类似的问题vim命令。在这种情况下,原始发布者通过向他的~/.bashrc.