Xem ví dụ dưới đây:
$ ls -1p
appledir/
applefile
orangedir/
orangefile
$ find . -type f -name apple\*
./applefile
$ find . -type f -name orange\*
./orangefile
$ find . -type f -name apple\* -o -name orange\*
./applefile
./orangedir
./orangefile
$ find . -type f \( -name apple\* -o -name orange\* \)
./applefile
./orangefile
$
Tôi đã ngạc nhiên khi phát hiện ra rằng tôi cần các dấu ngoặc đơn để nó hoạt động như mong đợi; rõ ràng là tôi đã không tiếp thu quy tắc ưu tiên bằng cách find
đánh giá các đối số của nó.
Làm thế nào tôi có thể dễ dàng dự đoán khi nào tôi sẽ và khi nào tôi sẽ không cần sử dụng dấu ngoặc đơn để nhóm một cách rõ ràng find
?
Nói cách khác, các quy tắc mà tôi có thể tưởng tượng khi find
chèn dấu ngoặc đơn vào các lệnh tôi đưa ra là gì, điều này sẽ cho phép tôi dự đoán chính xác cách nó sẽ đánh giá các biểu thức không được nhóm?
find
với nhiều-name
và-exec
chỉ thực hiện các trận đấu cuối cùng của-name