поиск с YUM
Обычно при поиске вы не используете регулярные выражения (globs), yum search
так как команда search
уже ищет подстроки в именах пакетов и их резюме. Откуда я это знаю? Там есть сообщение, которое говорит вам об этом, когда вы используете yum search
.
Только имена и краткие совпадения, используйте «поиск всех» для всего.
ПРИМЕЧАНИЕ . [cl-*]
Технически строка является оболочкой Bash.
Таким образом, вы обычно ищете фрагменты строк, которые вы хотите с search
. Регулярные выражения вступают в игру, когда вы ищете конкретные пакеты. Это команды YUM, такие как list
и install
.
Например:
$ 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
Единственное предостережение, с которым вы должны быть осторожны при использовании регулярных выражений / глобусов, - это если в вашей оболочке есть файлы с такими именами, что они тоже будут совпадать cl-*
. В этих случаях ваша оболочка расширит регулярное выражение / глобус до того, как оно будет представлено YUM.
Поэтому вместо запуска yum list cl-*
вы будете запускать команду yum list cl-file
, если есть файл, соответствующий регулярному выражению / glob cl-*
.
Например:
$ 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
Вы можете защититься от этого, избегая подстановочного знака следующим образом:
$ 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
Так что насчет скобок
Я подозреваю, что у вас есть файлы в вашем локальном каталоге, которые сопоставляются, когда вы используете [cl-*]
в качестве аргумента yum search
. Эти файлы после сопоставления с оболочкой были переданы yum search
команде, где совпадения были найдены.
Например:
$ 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.
ПРИМЕЧАНИЕ. Приведенное выше совпадение сопоставлялось с именем моего файла, cl-file
а не с тем, cl-*
что я планировал.
cl-*
и не является регулярным выражением, оноglob
называется или как оно называется. Это обычный язык (в терминах Chomskian), но мы обычно говорим, что что-то является регулярным выражением, если оно определяет грамматику для обычного языка (используя по крайней мере три основных операции: конкатенация, изменение и звезда Клини).