joker karakterli garip davranışı bulma - neden?


9

locate "*.png"ile biten tüm dosyaları .pngbeklendiği gibi döndürür .

locate "test.*"hiçbir şey döndürmez, ancak testsistemimde adlandırılmış dosyalar var .

locate "*test"ile biten tüm dosyaları testbeklendiği gibi döndürür .

locate "test*"hiçbir şey döndürmez, ancak testsistemimle başlayan dosyalar vardır .

Joker karakterler neden yalnızca "ile bitmek" için çalışıyor gibi görünüyor?


1
Eğer maç dosyaları oluşturduktan sonra locatedb yeniden mi test*ve test.*?
Ignacio Vazquez-Abrams

@ IgnacioVazquez-Abrams: evet
Vittorio Romeo

Yanıtlar:


12

locate "test.*" hiçbir şey döndürmez, ancak sistemimde test adlı dosyalar var.

.regex'lerde gelişigüzel bir karakter gibi değil, nokta olarak kabul edilir, bu yüzden test.*eşleşmez test, ancak test.foo.

locate "test*"hiçbir şey döndürmez, ancak testsistemimle başlayan dosyalar vardır .

locate , dosyanın tam yolunu depolar , bu nedenle test ile başlayan dosyaları bulmak için kullanmalısınız locate "*/test*".

Son nokta, locate foodahil olmak üzere herhangi bir şey bulduğu gibi kafa karıştırıcı olabilir foo, bu yüzden desen olarak yorumlanır *foo*. Desende zaten bir joker karakter varsa, desen yıldızlarla çevrili görünmüyor.

Feragatname : Bazı testler yaptım ve bunlar benim sonuçlarım, çok basit görünen man sayfasını göstererek bunları kanıtlayamıyorum.


3
Benim man locatevar: --regex belirtilmezse, DESTERNS globbing karakterler içerebilir. Herhangi bir PATTERN herhangi bir globbing karakteri içermiyorsa, konum * PATTERN * gibi davranır.
gniourf_gniourf
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.