Suche mit YUM
Bei der Suche mit verwenden Sie im Allgemeinen keine regulären Ausdrücke (Globs), yum search
da der Befehl search
bereits nach Unterzeichenfolgen in den Paketnamen und deren Zusammenfassungen sucht. Woher weiß ich das? Es gibt eine Meldung, die Ihnen dies bei der Verwendung mitteilt yum search
.
Nur Name und Zusammenfassung stimmen überein, verwenden Sie "Alle durchsuchen" für alles.
HINWEIS: Die Zeichenfolge [cl-*]
ist technisch gesehen ein Glob in der Bash-Shell.
Sie suchen also im Allgemeinen nach Zeichenfolgenfragmenten, mit denen Sie arbeiten möchten search
. Die regulären Ausdrücke kommen ins Spiel, wenn Sie nach bestimmten Paketen suchen. Dies sind die YUM-Befehle wie list
und install
.
Beispielsweise:
$ 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
Die einzige Einschränkung, die Sie bei regulären Ausdrücken / Globs beachten müssen, ist, wenn sich in Ihrer Shell Dateien befinden, die so benannt sind, dass auch sie übereinstimmen cl-*
. In diesen Fällen erweitert Ihre Shell den regulären Ausdruck / Glob, bevor er YUM präsentiert wird.
Anstatt also auszuführen, führen yum list cl-*
Sie den Befehl aus yum list cl-file
, wenn eine Datei vorhanden ist, die dem regulären Ausdruck / Glob entspricht cl-*
.
Beispielsweise:
$ 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
Sie können sich davor schützen, indem Sie dem Platzhalter folgendermaßen entkommen:
$ 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
Was ist also mit den Klammern?
Ich vermute, Sie haben Dateien in Ihrem lokalen Verzeichnis, die übereinstimmen, wenn Sie [cl-*]
als Argument für verwenden yum search
. Diese Dateien wurden nach dem Abgleich durch die Shell an den yum search
Befehl übergeben, wo Übereinstimmungen gefunden wurden.
Beispielsweise:
$ 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.
HINWEIS: Die obige Übereinstimmung wurde mit dem Namen meiner Datei abgeglichen cl-file
und nicht mit der cl-*
von mir beabsichtigten.
cl-*
ist jedoch kein regulärer Ausdruck, sondern einglob
oder wie auch immer er heißt. Es ist eine reguläre Sprache (in chomskischen Begriffen), aber wir sagen normalerweise, dass etwas ein regulärer Ausdruck ist, wenn es eine Grammatik für die reguläre Sprache definiert (indem mindestens drei grundlegende Operationen verwendet werden: Verkettung, Änderung und Kleene-Stern).