Fedora附带了"gstack"和一堆"gst-"程序,当我试图快速输入我的git别名时,这些程序一直出现在我的bash完成中.它们当然和/ usr/bin一起安装在其他一千个程序中,所以我不能只从我的PATH中删除它们的目录.在Linux中是否有任何方法可以将这些特定程序列入黑名单以便完成?
我已经尝试过FIGNORE和GLOBIGNORE环境变量,但它们不起作用,看起来它们只是在您输入命令后才能完成文件.
小智 4
2016 年,Bash 为此引入了一个选项。我正在复制zuazo的这个新答案中的文本:
这是相当新的,但在Bash 4.4中你可以设置EXECIGNORE
变量:
啊。新变量:EXECIGNORE;以冒号分隔的模式列表,在搜索命令时将导致匹配的文件名被忽略。
来自官方文档:
执行忽略
以冒号分隔的 shell 模式列表(请参阅模式匹配)定义使用 PATH 的命令搜索要忽略的文件名列表。出于通过 PATH 查找完成和命令执行的目的,完整路径名与这些模式之一匹配的文件不被视为可执行文件。这不会影响 [、test 和 [[ 命令的行为。命令哈希表中的完整路径名不受 EXECIGNORE 的约束。使用此变量可以忽略设置了可执行位但不是可执行文件的共享库文件。模式匹配遵循 extglob shell 选项的设置。
例如:
$ EXECIGNORE=$(which pytest)
Run Code Online (Sandbox Code Playgroud)
或者使用模式匹配:
$ EXECIGNORE=*/pytest
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
268 次 |
最近记录: |