locate "*.png"
mengembalikan semua file yang diakhiri dengan .png
, seperti yang diharapkan.
locate "test.*"
tidak mengembalikan apa-apa, tetapi ada file yang dinamai test
dalam sistem saya.
locate "*test"
mengembalikan semua file yang diakhiri dengan test
, seperti yang diharapkan.
locate "test*"
tidak mengembalikan apa-apa, tetapi ada file yang dimulai dengan test
di sistem saya.
Mengapa wildcard tampaknya hanya berfungsi untuk "diakhiri dengan"?
test*
dantest.*
?Jawaban:
.
diperlakukan sebagai titik, bukan sebagai dalam regex sebagai karakter yang sewenang-wenang, jaditest.*
tidak cocoktest
, tetapitest.foo
.cari menyimpan path lengkap ke file , jadi untuk menemukan file yang dimulai dengan tes, Anda harus menggunakan
locate "*/test*"
.Poin terakhir mungkin membingungkan, seperti
locate foo
menemukan sesuatu termasukfoo
, sehingga polanya ditafsirkan*foo*
. Tampaknya polanya tidak tertutup bintang, jika sudah ada satu wildcard dalam polanya.Penafian : Saya melakukan beberapa tes dan ini adalah kesimpulan saya, saya tidak dapat membuktikannya dengan mengutip halaman manual, yang tampaknya sangat sederhana.
sumber
man locate
punya: Jika --regex tidak ditentukan, POLA dapat berisi karakter globbing. Jika ada POLA yang tidak mengandung karakter globbing, cari berperilaku seolah-olah polanya adalah * POLA *.