cercando con YUM
In genere non si utilizzano espressioni regolari (globs) durante la ricerca yum search
poiché il comando search
sta già cercando sottostringhe all'interno dei nomi dei pacchetti e dei relativi riepiloghi. Come faccio a saperlo? C'è un messaggio che ti dice questo quando lo usi yum search
.
Solo corrispondenze di nome e riepilogo, usa "cerca tutto" per tutto.
NOTA: la stringa [cl-*]
è tecnicamente un glob nella shell Bash.
Quindi generalmente cerchi frammenti di stringhe con cui vuoi search
. Le espressioni regolari entrano in gioco quando cerchi pacchetti particolari. Questi sono i comandi YUM come list
e install
.
Per esempio:
$ yum list cl-* | expand
Loaded plugins: fastestmirror, langpacks, refresh-packagekit, tsflags
Loading mirror speeds from cached hostfile
* fedora: mirror.dmacc.net
* rpmfusion-free: mirror.nexcess.net
* rpmfusion-free-updates: mirror.nexcess.net
* rpmfusion-nonfree: mirror.nexcess.net
* rpmfusion-nonfree-updates: mirror.nexcess.net
* updates: mirror.dmacc.net
Available Packages
cl-asdf.noarch 20101028-5.fc19 fedora
cl-clx.noarch 0.7.4-4.3 home_zhonghuaren
cl-ppcre.noarch 2.0.3-3.3 home_zhonghuaren
L'unico avvertimento che devi fare attenzione con regex / globs è se ci sono file all'interno della tua shell che sono nominati in modo tale che corrispondano anche loro cl-*
. In questi casi la shell espanderà il regex / glob prima che venga presentato a YUM.
Quindi, invece di eseguire yum list cl-*
, eseguirai il comando yum list cl-file
, se c'è un file corrispondente a regex / glob cl-*
.
Per esempio:
$ ls cl-file
cl-file
$ yum list cl-*
Loaded plugins: fastestmirror, langpacks, refresh-packagekit, tsflags
Loading mirror speeds from cached hostfile
* fedora: mirror.steadfast.net
* rpmfusion-free: mirror.nexcess.net
* rpmfusion-free-updates: mirror.nexcess.net
* rpmfusion-nonfree: mirror.nexcess.net
* rpmfusion-nonfree-updates: mirror.nexcess.net
* updates: mirror.steadfast.net
Error: No matching Packages to list
Puoi evitare che ciò accada sfuggendo al jolly in questo modo:
$ yum list cl-\* | expand
Loaded plugins: fastestmirror, langpacks, refresh-packagekit, tsflags
Loading mirror speeds from cached hostfile
* fedora: mirror.dmacc.net
* rpmfusion-free: mirror.nexcess.net
* rpmfusion-free-updates: mirror.nexcess.net
* rpmfusion-nonfree: mirror.nexcess.net
* rpmfusion-nonfree-updates: mirror.nexcess.net
* updates: mirror.dmacc.net
Available Packages
cl-asdf.noarch 20101028-5.fc19 fedora
cl-clx.noarch 0.7.4-4.3 home_zhonghuaren
cl-ppcre.noarch 2.0.3-3.3 home_zhonghuaren
E le parentesi
Ho il sospetto che tu abbia dei file nella tua directory locale che vengono trovati quando usati [cl-*]
come argomento yum search
. Questi file dopo essere stati abbinati dalla shell, sono stati passati al yum search
comando dove corrispondenze dove poi trovato.
Per esempio:
$ ls cl-file
cl-file
$ yum search cl-*
Loaded plugins: fastestmirror, langpacks, refresh-packagekit, tsflags
Loading mirror speeds from cached hostfile
* fedora: mirror.dmacc.net
* rpmfusion-free: mirror.nexcess.net
* rpmfusion-free-updates: mirror.nexcess.net
* rpmfusion-nonfree: mirror.nexcess.net
* rpmfusion-nonfree-updates: mirror.nexcess.net
* updates: mirror.dmacc.net
======================================================================= N/S matched: cl-file =======================================================================
opencl-filesystem.noarch : OpenCL filesystem layout
Name and summary matches only, use "search all" for everything.
NOTA: la corrispondenza sopra è stata confrontata con il nome del mio file cl-file
e non con quello cl-*
previsto.
cl-*
non sia un'espressione regolare, è unaglob
o come si chiama. È un linguaggio regolare (in termini di Chomskian), ma di solito diciamo che qualcosa è un'espressione regolare se definisce una grammatica per il linguaggio regolare (usando almeno tre operazioni di base: concatenazione, alterazione e stella di Kleene).