wyszukiwanie za pomocą YUM
Na ogół nie używasz żadnych wyrażeń regularnych (globów) podczas wyszukiwania, yum search
ponieważ polecenie search
szuka już podłańcuchów w nazwach pakietów i ich podsumowaniach. Skąd to wiem? Jest komunikat, który mówi ci to, kiedy używasz yum search
.
Tylko dopasowania nazw i podsumowań, użyj „szukaj wszystkiego” dla wszystkiego.
UWAGA: Ciąg [cl-*]
jest technicznie globusem w powłoce Bash.
Więc ogólnie szukasz fragmentów ciągów, które chcesz search
. Wyrażenia regularne wchodzą w grę, gdy szukasz konkretnych pakietów. Są to polecenia YUM, takie jak list
i install
.
Na przykład:
$ 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
Jedynym zastrzeżeniem, na które musisz uważać przy wyrażeniach regularnych / globach, jest to, że w twojej powłoce znajdują się pliki, które są tak nazwane, że one również pasują cl-*
. W takich przypadkach twoja powłoka rozwinie wyrażenie regularne / glob przed zaprezentowaniem go YUM.
Zamiast uruchamiać yum list cl-*
będziesz polecenie yum list cl-file
, jeśli istnieje plik pasujący do wyrażenia regularnego / glob cl-*
.
Na przykład:
$ 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
Możesz uchronić się przed tym, uciekając od symbolu wieloznacznego w następujący sposób:
$ 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
A co z nawiasami
Podejrzewam, że masz pliki w katalogu lokalnym, które są dopasowywane, gdy używasz ich [cl-*]
jako argumentu yum search
. Pliki te, po dopasowaniu przez powłokę, zostały przekazane do yum search
polecenia, w którym znaleziono dopasowania.
Na przykład:
$ 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.
UWAGA: Powyższe dopasowanie zostało dopasowane do nazwy mojego pliku cl-file
, a nie cl-*
zgodnie z planem.
cl-*
nie jest jednak wyrażeniem regularnym, aleglob
jakkolwiek się nazywa. Jest to język regularny (w języku chomskim), ale zwykle mówimy, że coś jest wyrażeniem regularnym, jeśli definiuje gramatykę dla języka regularnego (przy użyciu co najmniej trzech podstawowych operacji: konkatenacji, zmiany i gwiazdy Kleene).