Hãy thử trích dẫn wildcard:
$ find /usr -name \*.sh
hay:
$ find /usr -name '*.sh'
Nếu bạn tình cờ có một tập tin phù hợp * sh trong thư mục làm việc hiện tại, các ký tự đại diện sẽ được mở rộng trước khi tìm thấy nó. Nếu bạn tình cờ có một file có tên tkConfig.sh trong thư mục làm việc của bạn, tìm lệnh sẽ mở rộng tới:
$ find /usr -name tkConfig.sh
mà sẽ chỉ tìm thấy tập tin có tên tkConfig.sh. Nếu bạn có nhiều hơn một tập tin phù hợp * sh, bạn sẽ nhận được một lỗi cú pháp từ tìm:
$ cd /usr/local/lib
$ find /usr -name *.sh
find: bad option tkConfig.sh
find: path-list predicate-list
Một lần nữa, lý do là các ký tự đại diện mở rộng cho cả hai tập tin:
$ find /usr -name tclConfig.sh tkConfig.sh
Bỏ qua ký tự đại diện ngăn không cho thẻ mở rộng sớm.
Một khả năng khác là/usr hoặc một trong các thư mục con của nó là một liên kết tượng trưng. tìm thường không theo các liên kết, vì vậy bạn có thể cần -follow tùy chọn:
$ find /usr -follow -name '*.sh'
Nguồn
2008-08-20 21:04:01
Đây có phải là câu hỏi một superuser ? – endolith
Điều này phù hợp hơn với [UnixSE] (http://unix.stackexchange.com/) –