Yanıtlar:
-o
Farklı parametreler arasındaki bayrağı kullanın .
find ./ -type f \( -iname \*.jpg -o -iname \*.png \)
tıkır tıkır çalışıyor.
NOT Orada gerekir parantez ve içeriğini arasında bir boşluk olabilir ya da çalışmaz.
Açıklama:
type -f
- yalnızca dosyaları arayın (dizinleri değil)\(
- type -f
Tüm argümanlara başvurmak için gerekli-o
- mantıksal VEYA operatörü-iname
- gibi -name
, ancak maç büyük / küçük harfe duyarsıztype -f
Uzatmak ve parantez olmadan hem ifadeler için geçerli Yani gelmez find ./ -type f -iname \*.jpg -o -type f -iname \*.png
daha uzun :-) iki karakter olsa ... da çalışır
a * b + c
farklı olduğu gibia * (b + c)
Sen ile kriterlerini birleştirebilirsiniz -o
olarak shadur önerdiği . -o
Yan yana sıralamaya göre daha düşük önceliğe sahip olduğunu unutmayın , bu nedenle parantez içine ihtiyacınız olabilir.
find . -name '*.jpg' -o -name '*.png'
find . -mtime -7 \( '*.jpg' -o -name '*.png' \) # all .jpg or .png images modified in the past week
Linux'ta -regex
uzantıları başka bir yolla birleştirmek için kullanabilirsiniz . Varsayılan regexp sözdizimi Emacs'dir ( temel regexps artı değişme gibi birkaç uzantı \|
); genişletilmiş regexps geçiş yapmak için bir seçenek var .
find -regex '.*\.\(jpg\|png\)'
find -regextype posix-extended -regex '.*\.(jpg|png)'
FreeBSD, NetBSD ve OSX'te genişletilmiş regexps -regex
ile birlikte kullanabilirsiniz -E
.
find -E . -regex '.*\.(jpg|png)'
-iname
yerine -name
o zaman da yakalayacaktır - image.JPG
veimage.PnG
Bu daha doğru:
find . -iregex '.*\.\(jpg\|gif\|png\|jpeg\)$'
-iregex
maçları jpg
yanı sıra JPG Jpg jpG
ve bu tür. Ben $
gerekli olmadığını düşünüyorum .
find -E . -iregex '.*\.(jpg|png|gif)'
@ sorin'in cevabında gösterildiği gibi.
Netleştirmek için, Linux, Unix ve macOS tadı üzerinde çalışan tek seçenek:
find -E . -regex '.*\.(jpg|png)'
Bunun nedeni, OS X sürümünün biraz farklı olması, ancak çoğu platformda iyi giden şeyler yazmak için önemlidir.
-type f \( -iname \*.png -o -iname \*.jpg\)
OSX'te hangi kısmı çalışmıyor?
find -name
Birden şekilde eşleşir desen SO de