有没有办法在系统上列出所有可configuration的`alternatives`(符号链接类似的命令)?

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

 alternatives --display mta 

虽然我可以 – 显示一组符号链接,我需要先猜它的名字(即mta )。

我可以简单地列出所有可能的可configuration符号链接组(如mta )从中select吗?

原因是我偶尔忘记了一些小组的名字。

确切的答案是:

 ls /var/lib/alternatives 

目录/etc/alternatives保存了所有 master和slave 混合在一起的符号链接的长列表。 从属符号链接不能用于alternatives --display [symlink]命令。

同时目录/var/lib/alternatives包含了每个组在缩短文件名列表中的状态信息(包括主从关系), 所有这些都可以直接使用--display选项。 例如, /var/lib/alternatives/java

 alternatives --display java 

要查看所有“主替代名称”的列表:

 update-alternatives --get-selections 

--get-selections列表主select名称及其状态。

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

 update-alternatives --list editor 

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

如果你想在各自的组中看到所有替代品的列表,你可以在鱼壳中运行以下代码:

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

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

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

最简单的答案是…

 ls /etc/alternatives 

在Ubuntu 12.04上(也可能是一些以前的版本,要检查),也可能是Debian(要检查):

 ls /var/lib/dpkg/alternatives 

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