像 cat 和 ls 这样的命令的制表符补全“compspec”在哪里定义?

像 cat 和 ls 这样的命令的制表符补全“compspec”在哪里定义?

一些借口:

我在本地安装 Jenkins,安装完成后,系统要求我从以下文件夹中的文本文件中生成密码:/var/lib/jenkins/secrets/

然而,输入文件名的首字母后 cat /var/lib/jenkins-secrets/,瞧,制表符和双制表符没有任何作用——自动完成功能坏了!

经过一番阅读,我发现自动完成是通过名为计算机规格,变量 GLOBIGNORE 和 FIGNORE 用于定义自动完成中忽略的内容。不过我现在很好奇,我想知道 ls 和 cat 究竟是如何忽略我的 /secrets/ 文件夹的内容的。输入以下命令后,查看 compspec 文件列表:

ls /etc/bash_completion.d

我只看到文件夹:

apt-linux-mint  git-prompt

标准 bash 命令是否有通用的规范?是什么阻止我在 /var/lib/jenkins/secrets/ 中双击?

答案1

根据用户“muru”对我的问题的评论,这是由于权限问题,而不是 compspecs 问题。

编辑:也感谢 Raffa 提供一些有用的信息。

相关内容