"dpkg -l"은 쉘 와일드카드를 허용합니까?

"dpkg -l"은 쉘 와일드카드를 허용합니까?

Bash 쉘에서 실행하면 와일드카드가 활성화되고 ls -l *ou*쉘은 out.dot및 인수로 out.png전달 되어야 합니다 ls. 즉, 문자가 ls전혀 표시되지 않습니다 . 그러나 *(와일드카드) 문자가 실제로 수신되는 dpkg -l *bridge*경우 dpkg는 다음과 같습니다 *.

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:~# 

아니면 이 행동을 어떻게 설명해야 할까요?

답변1

*ou*지정한 패턴( )과 일치하는 항목이 없으면 패턴이 확장되지 않은 상태로 명령에 전달됩니다.

$ echo *ou*
*ou*

답변2

일치하는 파일이 없으면 와일드카드는 그대로 유지됩니다. 시도하는 경우:

dpkg -l *ou*

당신은 다음을 얻어야합니다 :

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

사용

dpkg -l \*ou\*

또는

dpkg -l '*ou*'

관련 정보