Si lo ha dlocateinstalado, hay una manera fácil de enumerar todos los comandos en un paquete instalado:
dlocate -lsbin PACKAGE-NAME
Con solo dpkg, puede enumerar los archivos en los directorios PATH estándar (son casi todos programas ejecutables, con muy pocas excepciones):
dpkg -L PACKAGE-NAME… | sed -n 's!^\(/s\?bin\|/usr/s\?bin\|/usr/games\)/!!p' | sort -u
Las excepciones son un par de directorios, a partir de Debian wheezy, solo dos: /usr/bin/mhy /usr/bin/nu-mh.
Si el paquete no está instalado, reemplácelo dpkg -Lpor apt-file -F list:
apt-file -F list PACKAGE-NAME… | sed -n 's!^\(/s\?bin\|/usr/s\?bin\|/usr/games\)/!!p' | sort -u
Si bien hay archivos ejecutables en otros directorios, no están destinados a ejecutarse directamente, lo que los hace irrelevantes aquí.
Todos estos métodos pierden un conjunto de programas: los que se proporcionan a través del mecanismo de alternativas . Por ejemplo, para el ftppaquete, solo netkit-ftpy pftpse proporcionan, pero este paquete en realidad proporciona el ftpcomando, porque /usr/bin/ftpes un enlace simbólico al /etc/alternatives/ftpcual es un enlace simbólico a una de las ftpimplementaciones en el sistema, potencialmente /usr/bin/netkit-ftp. El siguiente comando (que no es un ejemplo de buena programación, solo una gran línea) enumera los comandos proporcionados por un paquete a través del mecanismo de alternativas, como está configurado actualmente.
perl -lwe 'foreach (`dpkg -L @ARGV`) {chomp; ++$p{$_}} foreach (</bin/* /sbin/* /usr/bin/* /usr/sbin/*>) {$e = readlink; next unless defined $e and $e =~ m!^/etc/alternatives/!; $t = readlink $e; print if $p{$t}}' PACKAGE_NAME…
Si desea enumerar los comandos que podrían proporcionarse a través de una alternativa que actualmente está configurada para apuntar a un paquete diferente, debe analizar los archivos /var/lib/dpkg/alternatives.
Los enlaces simbólicos y los archivos de configuración que implementan los mecanismos alternativos no se registran en paquetes sino que se registran automáticamente postinst, lo que dificulta (y de hecho técnicamente imposible si el script de instalación de un paquete no sigue las convenciones) consultar las alternativas proporcionadas por un paquete desinstalado .