为什么 tab 补全的“显示所有 3197 种可能性”有上限?

为什么 tab 补全的“显示所有 3197 种可能性”有上限?

我有一个目录,其中包含许多 (.pdb) 文件 - 其中有 9917 个。我想数一下,以确保它们都在那里(下载说有 9917 个)。当我 cd 进入目录然后按两次 Tab 键时,终端会响应:

Display all 3197 possibilities? (y or no)

起初我以为下载有错误,但是当我尝试时:

find -maxdepth 1 -type f | wc -l

我看到9917的文件确实都在那里。我的问题是:为什么上限是3197?在我看来,这个数字并没有什么特别的。它不是最大的有符号整数(short、int 或 long)——事实上它需要 12 位来存储(并非全是 1)。如果该最大值相对容易更改(某处的某些设置),我也很想知道如何更改它。

如果重要的话,我使用的是 Ubuntu 14.04(但我怀疑这不是 Ubuntu 问题,尽管我认为最大值可能会因系统而异)。另外,我使用的 shell 是 bash。

答案1

当您在终端中按 Tab 键且不带其他参数时,您将完成路径中的条目,而不是当前目录。如果您想这样做,请尝试在前面添加另一个参数。

如果您查看 bash 的输出compgen -c(它将列出您的 中的所有可执行文件$PATH),您应该会发现它更符合您的期望:

compgen -c | wc -l

相关内容