a/
find .
có nghĩa là "tìm (bắt đầu trong thư mục hiện tại)". Nếu bạn muốn tìm kiếm toàn bộ hệ thống, hãy sử dụng find /
; để tìm kiếm dưới /System/Library
, sử dụng find /System/Library
vv
b/
Đó là an toàn hơn để sử dụng dấu nháy đơn xung quanh ký tự đại diện. Nếu không có tệp nào có tên *.jdk trong thư mục làm việc khi bạn chạy này, sau đó find
sẽ nhận được một dòng lệnh của:
find . -name *.jdk
Tuy nhiên, nếu bạn xảy ra để có file junk.jdk
và foo.jdk
trong thư mục hiện khi bạn chạy nó, Thay vào đó, find
sẽ được bắt đầu bằng:
find . -name junk.jdk foo.jdk
… mà sẽ (do có hai) gây nhầm lẫn và làm cho lỗi đó bị lỗi. Nếu bạn sau đó xóa foo.jdk
và làm điều tương tự một lần nữa, bạn phải
find . -name junk.jdk
... mà sẽ không bao giờ tìm thấy một file có tên (ví dụ) 1.6.0.jdk
.
Những gì bạn có thể muốn trong bối cảnh này, là
find /System -name '*.jdk'
... hay, bạn có thể "thoát" các *
như:
find /System -name \*.jdk
@Prostak, điều này sẽ chỉ hiển thị các tệp thông thường chứ không hiển thị các thư mục. '-type f' là để lọc ra các liên kết tượng trưng, thư mục, thiết bị, và như vậy. – BRFennPocock
Tôi đánh dấu câu trả lời này là câu trả lời chính xác. Nhưng nhờ cả hai bạn vì sự giúp đỡ của bạn! – Prostak