2010-12-07 7 views
60

Tôi muốn tìm các tệp không thể đọc được trong thư mục của tôi (ví dụ: các tệp có g-r). Vì vậy, tôi cố gắng này:Sử dụng `find -perm` để tìm khi quyền không được đặt

find . -perm -g-r

Nó chỉ cho tôi tất cả các file ?? Vì vậy, tôi cố gắng này:

find . -perm -g+r

Và nó chỉ cho tôi chỉ các tập tin có thể đọc được. Có vẻ như -perm -g-r khớp với tất cả các tệp. Tôi đang sử dụng CentOS 5.5. Tôi có làm điều gì sai? Nó không giống như -perm -g-r không có gì hữu ích.

Trả lời

83

Hãy thử:

find . ! -perm -g+r

+3

Đã hoạt động! Tôi vẫn còn bí ẩn bởi '-perm-g-r' không làm việc, nhưng ồ. – User1

+0

Đó là một phần mở rộng rõ ràng để tìm các tệp không thực thi được. Cảm ơn! –

+0

Điều gì sẽ xảy ra nếu tôi muốn giới hạn tìm kiếm của mình đối với các tệp chứ không phải thư mục và muốn có '-maxdepth' của 2? Ý tôi là, làm thế nào để tôi phủ nhận các perms trong khi khẳng định những thứ khác? EDIT: Nevermind. Bạn có thể phủ nhận bất kỳ tùy chọn nào với! Nó có vẻ không hoạt động lúc đầu, nhưng thực sự là vậy. Tôi đã làm 'tìm -maxdepth 2! -perm -g + r -type d' và tìm thấy các thư mục ở độ sâu 2 mà không có quyền đọc nhóm. –

21

Nếu bạn muốn tìm file đó đều là phòng không đọc được bởi bạn, bạn có thể sử dụng

find . ! -readable 
+6

Điều này làm việc cho Linux, nhưng BSD tìm thấy trên Mac (từ năm 2008) không hỗ trợ nó. –

+0

Điểm tốt. Có thể có một vài phiên bản tìm thấy ở đó không hỗ trợ có thể đọc được. – Charley

-3

Bạn có thể thấy tất cả các file khi bạn thực hiện lệnh dưới đây, bởi vì bạn đã thực hiện nó như là root.

find . -perm -g-r 

Hãy thử thực thi với tư cách người dùng thông thường.

+7

Thuộc tính tệp (quyền, quyền sở hữu, kích thước, v.v.) không phụ thuộc vào người dùng. Tôi tin rằng câu trả lời của bạn là sai. –

+0

Ngoài ra, OP hỏi làm thế nào để tìm bit * không * thiết lập, mà câu trả lời của Tim Cooper và bạn bỏ lỡ. –