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

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

以前,如果我输入~/biTab, before,它会变成~/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,这可能会在下一次软件包升级时被覆盖。~/.inputrc我确认 bash_completion-1.3.6 将在我的 Fedora 16 机器上遵循这一点。

set expand-tilde off

编辑

您的里程可能会有所不同~/.inputrc。 Bash 的函数可能会根据您尝试完成的内容(例如程序与文件或目录)覆盖该行为。这讨论超级用户 SE 在自动完成命令时解决了类似的问题vim。在这种情况下,原始海报解决了他的问题通过向他的~/.bashrc.

相关内容