Bash Shell 在 ?+Tab-complete 上挂起

Bash Shell 在 ?+Tab-complete 上挂起

我经常在 Bash 中使用制表符补全功能来补全目录,但我发现如果我不小心在目录中包含问号,它会挂起一段不可接受的时间。我想知道为什么以及如何尽可能防止这种情况发生。以下是场景:

我启动一个命令并使用~键来代表主页:

ls ~?Desktop/co

哎呀!我按住 的Shift时间太长了。我本来打算将?设置为/。但是(哦不!)肌肉记忆已经开始发挥作用。在Tab我注意到错误之前,我已经按下了 。现在我只能等待 shell 愤怒地对我发出哔哔声。通常要等一两分钟。

发生了什么?为什么问号会导致它挂起并最终发出哔哔声?有什么方法可以阻止它挂起?

答案1

Bash 可能会枚举所有符合该模式的用户 ID,?Desktop以查看其主目录中是否存在名称以 开头的文件co。如果您的用户的主目录位于文件服务器上,则意味着网络流量,如果 NFS 服务器(或 NIS)需要时间响应,则网络流量可能会很慢。

相关内容