Pengujian Pola Shell Glob
Memandu
Pengujian Pola Shell Glob
Uji pola glob terhadap daftar jalur file dan lihat secara tepat mana yang cocok — secara real-time, dengan makna untuk Bash, Zsh, .gitignore, Python, dan Go fnmatch, dan Go path.Match. Ketik pola seperti src/**/*.{js,ts}, tempel jalur, dan lihat cocok yang menonjol hijau dan yang tidak cocok menghilang saat Anda mengetik.
Cara Penggunaan
- Masukkan pola glob di Pola Global field (misalnya
**/*.log). - Pilih sebuah Shell / Mode — pola yang sama dapat cocok dengan himpunan jalur yang berbeda tergantung pada apakah Anda berada di Bash, .gitignore, Python
fnmatch, atau Go. - Tempelkan jalur file satu per baris — atau klik contoh bawaan.
- Cocokan menonjol hijau dengan ikon centang; yang tidak cocok tetap abu-abu. Ringkasan menampilkan jumlah dan catatan tentang mode yang dipilih.
- Sisipkan pola Anda dengan
!untuk membalikkan pencocokan (menonjolkan semua yang tidak cocok). bukan Cocokan
Fitur
- Lima mode shell – Bash (dengan globstar), Zsh extended_glob, .gitignore, Python
fnmatch, dan Gopath.Match, masing-masing dengan makna yang tepat untuk*,**,?, dan ekspansi kurung. - Pencahayaan real-time – Jalur di-evaluasi saat Anda mengetik pola; tidak perlu tombol submit.
- Ekspansi kurung –
{a,b,c}alternatif dalam mode Bash dan Zsh, termasuk peningkatan dan produk silang sepertisrc/{js,ts}/**/*.{spec,test}.ts. - Kelas karakter –
[abc],[!abc]kelas yang dinyatakan, dan rentang seperti[A-Z]. - Pembalikan – Sisipkan pola dengan
!untuk membalikkan pencocokan. - Catatan mode – Penjelasan singkat muncul di bawah setiap hasil menjelaskan bagaimana mode yang dipilih menginterpretasikan pola tersebut.
- Contoh cepat – Muat tata letak proyek web, filter log berdasarkan .gitignore, atau contoh dokumentasi/Readme untuk belajar secara langsung.
- Hanya sisi klien – Pola dan jalur file tidak meninggalkan browser Anda; bekerja secara offline setelah dimuat.
Kasus Penggunaan Umum
- Pengujian aturan .gitignore – Tempel daftar jalur dari
git statusdan lihat mana yang akan diabaikan oleh aturan kandidat. - Penulisan argumen build glob – Verifikasi bahwa pola yang diberikan ke
tsc,esbuild, atauprettier --writecocok dengan file yang diharapkan dan tidak ada yang lain. - Penyusunan filter jalur CI – Pastikan filter
paths:di GitHub Actions atau GitLab CI mencocokkan subset file yang tepat sebelum push. - Penerjemahan skrip shell – Verifikasi bahwa pola tetap berfungsi setelah memindahkan kode antara Bash dan layanan Python atau Go.
- Pembelajaran makna glob – Tunjukkan siswa secara konkret mengapa
*tidak melintasi batas direktori dalam Bash tetapi melakukannya dalamfnmatch.
Tanya Jawab Umum
-
Apa perbedaan antara * dan ** dalam pola glob?
Satu
*cocok dengan karakter apa pun dalam satu segment jalur tetapi tidak melintasi pemisah direktori (/). Dua**(disebut globstar) cocok dengan jumlah karakter apa pun di sepanjang sejumlah segment direktori. Jadisrc/*.jsmencocoksrc/index.js. Banyak orang menemukan hal ini secara langsung.src/utils/index.js, sementarasrc/**/*.jscocok dengan keduanya. Tidak semua bahasa glob mendukung**— Pythonfnmatchdan Gopath.Matchmenganggap dua bintang sebagai dua token terpisah.*Apa perbedaan antara pencocokan glob dan ekspresi reguler? -
Glob adalah bahasa pola yang lebih kecil dirancang untuk mencocokkan jalur file. Sebagian besar karakter adalah literal:
, dan (dalam beberapa shell)
*,?,[...]adalah satu-satunya metakarakter. Tidak ada sintaks kuantitas, tidak ada anchor, tidak ada lookaround, dan tidak ada backreference. Implementasi biasanya mengubah pola glob menjadi ekspresi reguler secara internal, tetapi pengguna tidak perlu berpikir dalam istilah regex. Glob secara sengaja sederhana agar perintah shell tetap pendek dan dapat diprediksi.{...}Mengapa ekspansi kurung tidak berfungsi dalam semua bahasa glob? -
Ekspansi kurung (
menghasilkan tiga alternatif) secara teknis merupakan fitur shell di Bash dan Zsh, dievaluasi sebelum pencocokan glob. Shell memperluas ekspresi kurung menjadi beberapa argumen, dan file glob yang dihasilkan dicocokkan secara terpisah. Bibliotek glob murni yang digunakan oleh alat seperti
{a,b,c}(dalamgit), Python.gitignoretidak mengimplementasikan ekspansi kurung karena itu tidak benar-benar bagian dari bahasa glob — itu adalah langkah pra-pemrosesan tingkat shell yang terpisah.fnmatch, dan Gopath.MatchApa arti awal ! dalam pola glob? -
Arti yang tepat tergantung pada konteks. Dalam kelas karakter,
menghilangkan kelas — cocok dengan karakter tunggal kecuali
[!abc]. Sebagai karakter awal pada pola keseluruhan,a,b, ataucterutama merupakan!fitur di mana ia mengembalikan jalur yang sebelumnya diabaikan. Sebagian besar shell tidak menganggap awal.gitignorepada glob sebagai negasi secara mandiri — mereka menghasilkan kesalahan (expansi sejarah Zsh) atau melewatkannya. Dalam tester ini, awal!diinterpretasikan sebagai kepraktisan: ia membalikkan pencocokan sehingga jalur yang tidak cocok menonjol hijau.!misalnya, src/**/*.{js,ts}
Instal Ekstensi Kami
Tambahkan alat IO ke browser favorit Anda untuk akses instan dan pencarian lebih cepat
恵 Papan Skor Telah Tiba!
Papan Skor adalah cara yang menyenangkan untuk melacak permainan Anda, semua data disimpan di browser Anda. Lebih banyak fitur akan segera hadir!
Alat Wajib Coba
Lihat semua Pendatang baru
Lihat semuaMemperbarui: Kita alat terbaru ditambahkan pada 17 Juni 2026
