пошук за допомогою YUM
Зазвичай ви не використовуєте регулярних виразів (глобусів) під час пошуку, 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
або, як би воно не називалося. Це звичайна мова (по відношенню до Чомського), але ми зазвичай кажемо, що щось є регулярним виразом, якщо воно визначає граматику для звичайної мови (використовуючи принаймні три основні операції: конкатенація, зміна та зірка Клейна).