Jawaban:
Gunakan -otanda di antara berbagai parameter.
find ./ -type f \( -iname \*.jpg -o -iname \*.png \) bekerja seperti pesona.
CATATAN Ada harus menjadi ruang antara braket dan isinya atau itu tidak akan berhasil.
Penjelasan:
type -f - hanya mencari file (bukan direktori)\(- diperlukan type -fagar berlaku untuk semua argumen-o - operator logika ATAU-iname- seperti -name, tetapi pertandingan tidak peka huruf besar-keciltype -ftidak meluas dan berlaku untuk kedua ekspresi tanpa tanda kurung, Jadi, find ./ -type f -iname \*.jpg -o -type f -iname \*.pngjuga berfungsi ... meskipun dua karakter lebih panjang :-)
a * b + cberbeda daria * (b + c)
Anda dapat menggabungkan kriteria dengan -oseperti yang disarankan oleh Shadur . Perhatikan bahwa -omemiliki prioritas lebih rendah daripada penjajaran, jadi Anda mungkin perlu tanda kurung.
find . -name '*.jpg' -o -name '*.png'
find . -mtime -7 \( '*.jpg' -o -name '*.png' \) # all .jpg or .png images modified in the past week
Di Linux, Anda dapat menggunakan -regexuntuk menggabungkan ekstensi dengan cara terser. Sintaks regexp default adalah Emacs ( regexps dasar ditambah beberapa ekstensi seperti \|untuk pergantian); ada opsi untuk beralih ke regexps yang diperluas .
find -regex '.*\.\(jpg\|png\)'
find -regextype posix-extended -regex '.*\.(jpg|png)'
Pada FreeBSD, NetBSD dan OSX, Anda dapat menggunakan -regexgabungan dengan -Euntuk regexps yang diperluas.
find -E . -regex '.*\.(jpg|png)'
-inamedaripada -name- maka Anda juga akan menangkap image.JPGdanimage.PnG
Ini lebih benar:
find . -iregex '.*\.\(jpg\|gif\|png\|jpeg\)$'
-iregexcocok jpgjuga JPG Jpg jpGdan semacamnya. Saya pikir $tidak diperlukan.
find -E . -iregex '.*\.(jpg|png|gif)'seperti yang ditunjukkan dalam jawaban @ sorin.
Untuk memperjelasnya, satu-satunya opsi yang berfungsi di Linux, Unix dan rasa macOS adalah:
find -E . -regex '.*\.(jpg|png)'
Itu karena versi OS X sedikit berbeda, tetapi itu penting untuk menulis hal-hal yang berjalan baik di sebagian besar platform.
-type f \( -iname \*.png -o -iname \*.jpg\)tidak berfungsi pada OSX?
find -namepola yang cocok dengan banyak pola di SO