Quando procuro uma lista de pacotes, geralmente uso
dpkg -l|grep string|cut -d" " -f3|xargs
libdouble-conversion3:amd64 libestr0:amd64 libeval-closure-perl libio-stringy-perl libunistring2:amd64 liburi-perl libustr-1.0-1:amd64 libwind0-heimdal:amd64 libxstring-perl php-mbstring php7.0-mbstring php7.4 -mbstringphp8.2-mbstring
existe uma maneira mais curta no bash de obter essa lista?
dpkg-query
permite formatar a saída, ao usar-W
em vez de-l
.Por exemplo
listaria todos os pacotes binários começando
pyth
e os separaria por espaço, com sua arquitetura quando necessário.Mais detalhes sobre possíveis formatos em
man dpkg-query
.Pode não ser necessariamente mais curto, mas você pode definir um alias com base nele e, portanto, apenas usar a consulta REGEX.
Se você quiser aprender apenas uma ferramenta que pode pesquisar pacotes, você pode considerar
aptitude
cuja sintaxe de pesquisa é extremamente versátil e pode permitir pesquisar vários critérios sobre pacotes instalados ou não.Aqui:
Pesquisaria pacotes que estão instalados (
~i
abreviação de?installed
) e cujo nome corresponde à expressão regular fornecida (^pyth
abreviação de~n^pyth
ou?name(^pyth)
).-F %p
especifica o formato de saída , aqui%p
sendo o nome do pacote.Se você deseja imprimir a lista separada por espaço em uma linha,
xargs
(abreviação dexargs echo
) não é a ferramenta certa para isso. Usepaste -sd ' ' -
em vez disso. Se o objetivo é passar essa lista de pacotes para outro comando:No entanto:
Também deve funcionar, pois os nomes dos pacotes geralmente não começam
-
e não contêm espaços em branco, aspas ou barras invertidas, o que seria um problemaxargs
sem-0
/-d
.Se o comando for para desinstalar/limpar os pacotes, observe que você também pode fazer:
Observe também que você pode fazer a mesma pesquisa dentro da
aptitude
TUI pressionando l(paral
imitar a visualização) e inserir a especificação de pesquisa lá, de preferência em uma visualização de lista simples . Assim, fica mais fácil ver os detalhes desses pacotes e executar ações neles. A primeira coisa que faço ao executaraptitude
pela primeira vez em um sistema é alterar as configurações padrão em Opções -> Preferências marcando:O que facilita a aplicação de ações em um conjunto de pacotes filtrados.