“dpkg -l” recebe caractere curinga do shell?

2

Em um shell bash no qual tenho o globbing ativado se eu executar ls -l *ou* , o shell deve passar out.dot e out.png como argumentos para ls , ou seja, ls nunca verá o caractere * . No entanto, parece que no caso de dpkg -l *bridge* o dpkg na verdade recebe o caractere * (curinga):

root@host-machine:~# ls -l *ou*
-rw-r--r-- 1 root root   8985 Jan 21 11:58 out.dot
-rw-r--r-- 1 root root 892260 Jan 21 11:58 out.png
root@host-machine:~# dpkg -l *bridge*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                                          Version                             Architecture                        Description
+++-=============================================================-===================================-===================================-================================================================================================================================
ii  bridge-utils                                                  1.5-6                               amd64                               Utilities for configuring the Linux Ethernet bridge
un  cli-uno-bridge                                                <none>                                                                  (no description available)
ii  libatk-bridge2.0-0:amd64                                      2.5.3-2                             amd64                               AT-SPI 2 toolkit bridge - shared library
root@host-machine:~# 

Ou como explicar esse comportamento?

    
por Martin 21.01.2015 / 16:50

2 respostas

4

Se nada coincidir com o padrão que você especificou ( *ou* ), então isso é passado não expandido para o comando:

$ echo *ou*
*ou*
    
por 21.01.2015 / 17:07
2

Os curingas são deixados como estão se não houver correspondências de arquivo. Se você tentar:

dpkg -l *ou*

Você deve receber:

dpkg-query: no packages found matching out.dot
dpkg-query: no packages found matching out.png

Use

dpkg -l \*ou\*

ou

dpkg -l '*ou*'
    
por 21.01.2015 / 17:07