Yanıtlar:
*
(Yıldız veya yıldız) o komutu verilmeden önce (genellikle) kabuk tarafından yorumlanır özel bir karakterdir. Önde gelen noktalara sahip olanlar dışında (genellikle) tüm dosya adlarına genişletilir. Daha fazla bilgi için kalıp eşleme ile ilgili bash kılavuzuna bakın .
Tırnak içine konulursa, yıldız kabuk tarafından yorumlanmaz ve kelimesi kelimesine verilir.
Örnekler açıklanmıştır. Alıntılanan:
grep "string" . -r --include "*.pl"
Burada argüman ile grep
seçenek alacaksınız . Bu karakter ilk karakter olarak 4 karakter dizesidir . Ne bu dize ile yaptığı tamamen yukarı etmektir . Bu durumda , yalnızca kalıpla eşleşen dosyaları dikkate almak anlamına gelir .--include
*.pl
*
grep
grep
--include
*.pl
Sahne arkasındaki AFAIK gnu grep, gnu bash ile aynı desen eşleştirme lib'ini kullanır.
Alıntılanmamış olan:
grep "string" . -r --include *.pl
Burada kabuk ilk önce kalıbı *.pl
biten tüm dosya adlarına genişletecektir .pl
. Dosyalar olduğunu varsayalım foo.pl
, bar.pl
ve baz.pl
. Komut satırını genişlettikten sonra şöyle görünür:
grep "string" . -r --include foo.pl bar.pl baz.pl
İşte grep
seçeneği alacak --include
argüman ile foo.pl
seçenekleri takip bar.pl
ve baz.pl
. --include foo.pl
yalnızca kalıpla eşleşen dosyaları dikkate almak anlamına gelir foo.pl
. Desende joker karakterler bulunmadığından, eşleşen dosya ile eşleşen tek dosya foo.pl
.
Seçenekler bar.pl
ve baz.pl
araçlar grep de bu dosyalarda arama yapar, ancak desenle eşleşmedikleri için yok foo.pl
sayılırlar.
grep -r
tutarsız göründüğünü merak ettim, ancak sadece bir kullandığımda fark etmedim *
.
Fark, eğer desen ( *.pl
) belirtmezseniz, kabuk tarafından genişletilir. Örneğin , kabuğunuzu genişlettiği için , grep
adlı dosyayı içeren bir dizinde çalıştırırsanız , aslında gördükleriniz:foo.pl
*pl
grep
grep "string" . -r --include foo.pl
Yalnızca eklemeyi söylediğiniz için yalnızca foo.pl
bir dosyada arama yapar.
Eğer desen alıntı takdirde, kabuk olacak değil genişletmek ve grep
yani doğru komutunu alır
grep "string" . -r --include *pl
peopl
tarafından genişletilmez *.pl
.
grep
; kabukta.grep
tırnak işaretlerini asla görmez.