Trik Menggunakan Wildcards untuk Mencocokkan Nama File di Terminal Linux

Wildcards (juga disebut sebagai meta characters) adalah simbol atau karakter khusus yang mewakili karakter lainnya. Kamu dapat menggunakannya dengan perintah ls atau perintah rm untuk membuat daftar atau menghapus file yang sesuai dengan kriteria yang diberikan, secara reseptif.

Wildcards ini ditafsirkan oleh shell dan hasilnya dikembalikan ke perintah yang kamu jalankan. Ada tiga wildcard utama di Linux:

  • Tanda asterisk (*)– cocokkan satu atau lebih kejadian karakter apapun, termasuk tanpa karakter.
  • Tanda tanya (?)– mewakili atau mencocokkan satu kejadian karakter apapun.
  • Karakter Bracketed ([ ])– cocok dengan karakter yang ada yang tertutup dalam tanda kurung siku. Ada kemungkinan untuk menggunakan berbagai jenis karakter (karakter alfanumerik): angka, huruf, karakter khusus lainnya, dll.

Kamu harus memilih dengan hati-hati wildcard yang digunakan untuk mencocokkan nama file yang benar. Kamu juga bisa menggabungkan semuanya dalam satu operasi seperti yang dijelaskan pada contoh di bawah ini.

Mencocokkan Nama File Menggunakan Wildcard

Untuk tujuan artikel ini, kita akan menggunakan file berikut pada setiap contoh.

createbackup.sh  list.sh  lspace.sh        speaker.sh
listopen.sh      lost.sh  rename-files.sh  topprocs.sh

Perintah ini cocok dengan semua file dengan nama yang dimulai dengan l(yang merupakan awalan) dan diakhiri dengan satu atau lebih kejadian karakter apapun.

ls -l l*

Contoh ini menunjukkan penggunaan lain *untuk menyalin semua nama file yang diawali dengan users-0dan diakhiri dengan satu atau lebih kejadian karakter apapun.

mkdir -p users-info
ls users-0*
mv -v users-0* users-info/	# Option -v flag enables verbose output

Perintah berikut cocok dengan semua file dengan nama yang dimulai dengan ldiikuti oleh karakter tunggal dan diakhiri dengan st.sh(yang merupakan akhiran).

ls l?st.sh

Perintah di bawah ini cocok dengan semua file dengan nama yang dimulai dengan ldiikuti oleh karakter di dalam kotak tanda kurung tapi diakhiri dengan st.sh.

ls l[abdcio]st.sh

Menggabungkan Wildcards untuk Mencocokkan Nama File

Kamu dapat menggabungkan wildcard untuk membuat kriteria pencocokan nama file yang kompleks seperti yang dijelaskan pada contoh berikut.

Perintah ini akan cocok dengan semua nama file yang diawali dengan dua karakter yang diikuti stnamun diakhiri dengan satu atau lebih kemunculan karakter apapun.

ls
ls ??st*

Contoh ini cocok dengan nama file yang dimulai dengan karakter berikut [clst]dan diakhiri dengan satu atau lebih kemunculan karakter apa pun.

ls
ls [clst]*

Dalam contoh ini, hanya nama file yang dimulai dengan karakter berikut yang [clst]diikuti oleh salah satu dari ini [io]dan kemudian karakter tunggal mana pun, diikuti oleh satu tdan lebih, satu atau lebih kejadian karakter apa pun akan terdaftar.

ls
ls [clst][io]?t*

Di sini, nama file diawali dengan satu atau lebih kejadian karakter apapun, diikuti oleh huruf tardan diakhiri dengan satu atau lebih kejadian karakter apapun akan dihapus.

ls
rm *tar*
ls

Mencocokkan Set Karakter

Sekarang kita lihat bagaimana menentukan satu set karakter. Perhatikan nama file di bawah yang berisi informasi pengguna sistem.

ls
users-111.list  users-1AA.list  users-22A.list  users-2aB.txt   users-2ba.txt
users-111.txt   users-1AA.txt   users-22A.txt   users-2AB.txt   users-2bA.txt
users-11A.txt   users-1AB.list  users-2aA.txt   users-2ba.list
users-12A.txt   users-1AB.txt   users-2AB.list  users-2bA.list

Perintah ini akan cocok dengan semua file yang namanya dimulai dengan users-i, diikuti oleh sebuah angka, huruf kecil atau angka, lalu angka dan diakhiri dengan satu atau lebih kejadian karakter apapun.

ls users-[0-9][a-z0-9][0-9]*

Perintah berikutnya cocok dengan nama file yang diawali dengan users-i, diikuti oleh nomor, huruf kecil atau huruf besar atau nomor, lalu angka dan diakhiri dengan satu atau lebih kejadian karakter apapun.

ls users-[0-9][a-zA-Z0-9][0-9]*

Perintah berikut ini akan cocok dengan semua nama file yang diawali dengan users-i, diikuti oleh nomor, huruf besar atau huruf kecil atau huruf kecil, huruf kecil atau huruf besar dan diakhiri dengan satu atau lebih kejadian karakter apapun.

ls users-[0-9][a-zA-Z0-9][a-zA-Z]*

Menegaskan Set Karakter

Kamu juga bisa meniadakan satu set karakter dengan menggunakan simbol !. Perintah berikut mencantumkan semua nama file yang dimulai dengan users-i, diikuti oleh nomor, karakter penamaan file yang valid selain dari sebuah angka, kemudian huruf kecil atau huruf besar dan diakhiri dengan satu atau lebih kejadian dari setiap karakter.

ls users-[0-9][!0-9][a-zA-Z]*

Itu saja untuk saat ini! Jika kamu sudah mencoba contoh di atas, pasti sekarang kamu mulai memahami bagaimana wildcard bekerja untuk mencocokkan nama file di Linux.

Semoga bermanfaat.