Bash 自动完成在文件名后添加尾部斜杠

AJ.*_*AJ. 11 debian bash debian-lenny autocomplete

我最近将我的系统从 Etch 升级到 Lenny。现在,当我使用自动完成功能时,文件名(而不是目录)会在命令行中以斜杠结尾。

它似乎与多个(所有?)命令有关。我尝试了一些:

aj@mmdev0:~/loadtest$ vi pyloadtools3.py/
aj@mmdev0:~/loadtest$ cat pyloadtools3.py/
aj@mmdev0:~/loadtest$ file pyloadtools3.py/
aj@mmdev0:~/loadtest$ ls -al pyloadtools3.py/
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

Jam*_*s T 4

这些是我发现对这个问题感兴趣的文件和文件片段。请注意,我运行的是 Ubuntu 10.04

\n\n

您也许可以从我的配置文件中找出问题所在。否则,也许可以考虑发布您相应的配置。

\n\n

~/.bashrc 的最后一部分

\n\n
# enable programmable completion features (you don\'t need to enable\n# this, if it\'s already enabled in /etc/bash.bashrc and /etc/profile\n# sources /etc/bash.bashrc).\nif [ -f /etc/bash_completion ] && ! shopt -oq posix; then\n    . /etc/bash_completion\nfi\n
Run Code Online (Sandbox Code Playgroud)\n\n

/etc/bash.bashrc 页面下 40%\n(你也注释掉了这部分吗?)

\n\n
# enable bash completion in interactive shells\n#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then\n#    . /etc/bash_completion\n#fi\n
Run Code Online (Sandbox Code Playgroud)\n\n

我发现这些文章很有趣:

\n\n

http://www.linux.com/archive/feed/54005

\n\n

http://www.debian-administration.org/articles/316

\n\n

我必须做更多的研究......但这就是我到目前为止所得到的。

\n\n

尝试在终端中运行此命令,然后查看问题是否仍然存在:

\n\n
. /etc/bash_completion\n
Run Code Online (Sandbox Code Playgroud)\n\n

编辑:发现制表符完成是由 /etc/bash_completion 处理的。许多 Linux 命令在 /etc/bash_completion.d/ 目录中也有自己的制表符补全设置。

\n\n

其他人也遇到过这个问题:

\n\n

http://forums.gentoo.org/viewtopic-t-751913-start-0.html

\n\n

https://bugzilla.redhat.com/show_bug.cgi?id=583919

\n\n

这可能是您的 bash 版本中的错误。所以现在真正的问题是......你有什么版本的 bash?

\n\n

这样其他有此问题的人就可以轻松找到解决方案:

\n\n

“这可能是 /etc/bash_completion 脚本的问题。尝试重新安装 bash_completion 软件包。问题仍然存在吗? \xe2\x80\x93 W_Whalley”

\n\n

-看评论

\n