有没有办法列出系统上所有可配置的“替代方案”(类似命令的符号链接)?

有没有办法列出系统上所有可配置的“替代方案”(类似命令的符号链接)?

RHEL/Fedora 上的命令alternatives(package chkconfig) 管理将通用名称链接到替代实现之一的符号链接。例如,mtaSendmail 和 Postfix 可以提供一组符号链接(以实现 iesendmail命令):

alternatives --display mta

虽然我可以有--display一组符号链接,但我需要先猜出它的名称(即mta)。

我可以简单地列出所有可能的可配置符号链接组(如mta)以供选择吗?

原因是我偶尔会忘记一些群组名称。

答案1

在 Debian(但不是 Fedora 或 RHEL)上,查看所有“主备用名称”的列表:

update-alternatives --get-selections

--get-selections列出主备用名称及其状态。

对于列出的每一个,你可以运行--list $ALTERNATIVE_NAME,例如

update-alternatives --list editor

--list name显示链接组的所有目标。

如果您想要查看各自组中所有替代方案的列表,您可以在fishshell 中运行以下命令:

for alternative in (update-alternatives --get-selections)
    echo $alternative 
    update-alternatives --list (echo $alternative | cut -d" " -f1)
    echo
end | pager

(ba|z)?sh 语法应该类似。

要更改替代方案,请运行sudo update-alternatives --config $ALTERNATIVE_NAME

答案2

确切的答案是(RHEL):

ls /var/lib/alternatives

目录/etc/alternatives维护所有符号链接的扁平长列表混合主服务器和从服务器一起。从服务器符号链接不能与命令一起使用alternatives --display [symlink]

同时目录/var/lib/alternatives下还保存了各个组的状态信息(包括主从关系)缩短文件名列表全部其中可以直接与--display选项一起使用。例如/var/lib/alternatives/java

alternatives --display java

答案3

最简单的答案是......

ls /etc/alternatives

答案4

在 Ubuntu 12.04(可能还有一些先前的版本,有待检查)以及 Debian 上(有待检查):

ls /var/lib/dpkg/alternatives

列出它只是为了获得可配置的替代名称,因为此目录中的条目不是链接。顺便说一句,此目录中可能有压缩文件,因此列出的名称并不总是按原样使用。例如,我有一个/var/lib/dpkg/alternatives/psql.1.gz

相关内容