Kök dizinden belirli bir dize (temel olarak .c dosyaları olarak) arıyorum.grep özyineleme - tutarsızlıklar
Bunu kullandığımda hemen bir liste alırım.
grep -rl "F_capture" .
Ancak, ben sadece arama .c dosyaları tarafından hızlandırmak çalışırsanız:
grep: warning: ./sys/block/fd0/device/bus/drivers/i8042/i8042/serio1/input:event1/subsystem/event3/device/bus/drivers/pcnet32/0000:00:03.0/subsystem: recursive directory loop
: Böyle ardışık dizin uyarıları ile ilgili bir takım ile bitirmek
grep -r --include=*.c "F_capture" .
Uyarıları -s parametresini kullanarak bastırmayı denediğimde, uyarıları alamıyorum ama hiçbir şey alamıyorum - hiç inmeyecek gibi görünmüyor.
grep -rsl --include="*.c" "F_capture" .
Yani benim sorum tahmin niçin hemen dönüş şey kullanılmış ve dosyanın belirli türde bir hedeflediğim diğer türleri asmak gibi görünüyor ilk grep. Hedeflenen aramanın daha hızlı olacağını düşünürdüm.
Bir BUG benziyor. Sembolik bağları takip eden -r, sadece komut satırındaysa. Görünüşe göre, '--include' bunu kırıyor ve grep sembolik bağları takip etmeye çalışıyor. – jm666
Aynı hataları, --include = *. C' (yukarıdaki ikinci alıntı satırınızdaki gibi) ve - --include = "*. C" '(yukarıdaki dördüncü alıntı satırında olduğu gibi) denediğinizde mi? Eğer değilse, shopt | grep glob' (bash kullandığınızı varsayarak)? – dg99
dg99 - evet, -s anahtarını çıkarırsam, "* .c" veya * .c kullanırsam aynı hataları alırım. Ben shopt yazdığınızda | grep glob "globs" listesini alırım - hepsi kapalı. – stackbacker