Bash 打印所有可用Debian源程序包的列表

Bash 打印所有可用Debian源程序包的列表,bash,ubuntu,debian,gnu-make,Bash,Ubuntu,Debian,Gnu Make,对于Debian(-like)发行版,以下命令打印通过/etc/apt/sources.list和/etc/apt/sources.list.d/*可用的所有二进制软件包的列表: $ apt-cache search . 如何获得所有可用源程序包的类似列表?我知道我可以通过以下方式找到二进制包的源包名称: $ apt-get source -s <binary-package-name> | sed -ne 's/^Fetch source //p' 但是这真的很慢。apt ca

对于Debian(-like)发行版,以下命令打印通过
/etc/apt/sources.list
/etc/apt/sources.list.d/*
可用的所有二进制软件包的列表:

$ apt-cache search .
如何获得所有可用源程序包的类似列表?我知道我可以通过以下方式找到二进制包的源包名称:

$ apt-get source -s <binary-package-name> | sed -ne 's/^Fetch source //p'

但是这真的很慢。

apt cache show$(apt cache pkgnames)| sed-n的/^Source://p'| sort-u
?也许:无论如何,你的
$(apt cache pkgnames)
比我的
$(apt cache search.)要好。
。但是许多(大多数?)包缺少一行以
源代码开始的代码:可能是那些二进制和源代码包名称相同的代码?有人能证实这个猜测吗?
apt cache show$(apt cache pkgnames)| awk'$1~/^Package://{n=$2}$1~/^Source://{n=$2}/^$/^$/{print n}'| sort-u
?很酷,谢谢。我有一个(较慢的)for循环来实现同样的效果。这将是我被接受(并被投票)的答案:-)。
#!/bin/bash
(
    LANG=C
    IFS=$'\n'
    for i in $(apt-cache search .); do
        apt-get source -s ${i%% *} | sed -ne 's/^Fetch source //p'
    done
) | sort -u