Not: Bu bir kopya değildir. Grep'in yolları / dizinleri dışlama seçeneklerinin beklenen şekilde davranmadığı belli bir durumla ilgileniyorum.
Kök dosya sistemimi yinelemeli olarak aramak için grep kullanmaya çalışıyorum. Gibi bazı dizinleri dışlamaya çalışıyorum /proc, /sys, ve /usr/local. Kullanırsam --exclude-dir=${DIR_NAME}, sonra aşağıdaki yollarda arama yapmayacak ${DIR_NAME}, ama bu olacak Ayrıca aşağıdaki yolları aramayı reddedeceği anlamına gelir ${DIR_NAME} Eğer ${DIR_NAME} geçerli çalışma dizininin altındaki bir seviyede. Örnek olarak, bu dosya sistemi ağacını göz önünde bulundurun:
${PWD}/
data/
settings/
sys/
users/
developer/
projects/
my_os/
build/
src/
apps/
sys/
Makefile
extras/
sys/
apps/
os/
Aramamın hariç tutulmasını istiyorsanız ${PWD}/sys ve altındaki her şey, grep -rl --exclude-dir=sys dışlayacak, ancak dışlayacak ${PWD}/data/settings/sys ve ${PWD}/users/developer/projects/my_os/src/sys, aramamda istediğim iki dizin var.
Aslında bunu umuyordum --exclude-dir / --exclude düzenli ifadeler için izin olurdu ve bu yorum yaptıklarını belirten, ancak düzenli ifade sözdiziminin yardımcı programın davranışını etkilemediği anlaşılıyor (ör. "^/(dev|proc)" ). Bu iki seçenek normal ifadeler kullanmıyorsa iyiyim ancak dışlama deseninin tekil yol bileşenlerine uygulanmasını istemiyorum. Bu şekilde çalışmasını sağlamak için zaten var mı?