mencari dengan YUM
Anda biasanya tidak menggunakan ekspresi reguler (gumpalan) ketika mencari dengan yum search
karena perintah search
sudah mencari sub-string dalam nama paket dan ringkasannya. Bagaimana saya tahu ini? Ada pesan yang memberi tahu Anda hal ini saat Anda menggunakan yum search
.
Hanya nama dan ringkasan yang cocok, gunakan "cari semua" untuk semuanya.
CATATAN: String [cl-*]
tersebut secara teknis gumpal di dalam shell Bash.
Jadi Anda biasanya mencari fragmen string yang Anda inginkan search
. Ekspresi reguler ikut bermain ketika Anda mencari paket tertentu. Ini adalah perintah YUM seperti list
dan install
.
Sebagai contoh:
$ 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
Satu-satunya peringatan Anda harus berhati-hati dengan regex / gumpalan, adalah jika ada file dalam shell Anda yang dinamai sedemikian sehingga mereka juga akan cocok cl-*
. Dalam kasus tersebut, shell Anda akan memperluas regex / glob sebelum dipresentasikan ke YUM.
Jadi alih-alih menjalankan yum list cl-*
Anda akan menjalankan perintah yum list cl-file
, jika ada file yang cocok dengan regex / glob cl-*
.
Sebagai contoh:
$ 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
Anda dapat mencegah hal ini terjadi dengan melarikan diri dari wildcard seperti:
$ 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
Jadi bagaimana dengan kurung
Saya menduga Anda memiliki file di direktori lokal Anda yang cocok ketika Anda digunakan [cl-*]
sebagai argumen yum search
. File-file ini setelah dicocokkan oleh shell, diteruskan ke yum search
perintah di mana cocok di mana kemudian ditemukan.
Sebagai contoh:
$ 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.
CATATAN: Pertandingan di atas cocok dengan nama file saya cl-file
,, dan bukan cl-*
seperti yang saya maksudkan.
cl-*
bukan ekspresi reguler, itu adalahglob
atau apa pun namanya. Ini adalah bahasa biasa (dalam istilah Chomskian), tetapi kami biasanya mengatakan bahwa sesuatu adalah ekspresi reguler jika ia mendefinisikan tata bahasa untuk bahasa biasa (dengan menggunakan setidaknya tiga operasi dasar: penggabungan, perubahan dan bintang Kleene).