Câu trả lời:
Sử dụng -o
cờ giữa các tham số khác nhau.
find ./ -type f \( -iname \*.jpg -o -iname \*.png \)
hoạt động như một lá bùa.
LƯU Ý Có phải là một không gian giữa khung và nội dung của nó hoặc nó sẽ không làm việc.
Giải trình:
type -f
- chỉ tìm kiếm tệp (không phải thư mục)\(
- cần thiết type -f
để áp dụng cho tất cả các đối số-o
- toán tử OR logic-iname
- thích -name
, nhưng trận đấu không phân biệt chữ hoa chữ thườngtype -f
không mở rộng và áp dụng cho cả hai biểu thức mà không có dấu ngoặc đơn, Vì vậy, find ./ -type f -iname \*.jpg -o -type f -iname \*.png
cũng làm việc ... mặc dù nó là hai nhân vật còn :-)
a * b + c
là khác vớia * (b + c)
Bạn có thể kết hợp các tiêu chí với -o
như đề xuất của Shadur . Lưu ý rằng -o
có độ ưu tiên thấp hơn vị trí kề nhau, vì vậy bạn có thể cần dấu ngoặc đơn.
find . -name '*.jpg' -o -name '*.png'
find . -mtime -7 \( '*.jpg' -o -name '*.png' \) # all .jpg or .png images modified in the past week
Trên Linux, bạn có thể sử dụng -regex
để kết hợp các tiện ích mở rộng theo cách chặt chẽ hơn. Cú pháp regrec mặc định là Emacs ( regexps cơ bản cộng với một vài phần mở rộng như \|
để thay thế); có một tùy chọn để chuyển sang regexps mở rộng .
find -regex '.*\.\(jpg\|png\)'
find -regextype posix-extended -regex '.*\.(jpg|png)'
Trên FreeBSD, NetBSD và OSX, bạn có thể sử dụng -regex
kết hợp với các biểu -E
thức chính mở rộng.
find -E . -regex '.*\.(jpg|png)'
-iname
thay vì -name
- sau đó bạn cũng sẽ chụp image.JPG
vàimage.PnG
Điều này đúng hơn:
find . -iregex '.*\.\(jpg\|gif\|png\|jpeg\)$'
-iregex
trận đấu jpg
cũng như JPG Jpg jpG
và như vậy. Tôi nghĩ rằng $
không cần thiết.
find -E . -iregex '.*\.(jpg|png|gif)'
như thể hiện trong câu trả lời của @ sorin.
Để làm rõ, tùy chọn duy nhất hoạt động trên Linux, Unix và macOS là:
find -E . -regex '.*\.(jpg|png)'
Đó là bởi vì phiên bản OS X hơi khác một chút, nhưng điều quan trọng là viết những thứ hoạt động tốt trên hầu hết các nền tảng.
-type f \( -iname \*.png -o -iname \*.jpg\)
nào không hoạt động trên OSX?
find -name
mẫu phù hợp với nhiều mẫu tại SO