Tôi muốn chỉ ra câu trả lời này của @Gilles trong Loại trừ các đường dẫn khiến người ta phàn nàn về các quyền - Unix & Linux Stack Exchange ; về cơ bản nó liên quan đến một cấu trúc cho find
nó làm cho nó không hạ xuống các thư mục không thể đọc được, và theo nghĩa đó, có lẽ cũng nhanh hơn một chút.
Điều này dường như làm việc cho tôi:
Với GNU find
hoặc bất kỳ thứ gì khác find
hỗ trợ -readable
và các -executable
vị từ:
find / -type d ! \( -readable -executable \) -prune -o -type f -name netcdf -print
hoặc cũng thế này:
find / -type d ! -perm -g+r,u+r,o+r -prune -o -type f -name 'netcdf' -print
Vì một số lý do, tôi cần thêm tất cả g+r,u+r,o+r
(phím tắt cho điều đó a+r
), nếu không, nếu một trong số chúng bị bỏ lại, tôi vẫn có thể nhận được các lần truy cập "Quyền bị từ chối".
Dưới đây là một phân tích về làm thế nào tôi thấy điều này (lưu ý các -a
nhà điều hành (và) trong find
là tiềm ẩn giữa hai vị từ ):
find / # find starting from path /
-type d # match type is directory
! -perm -a+r # (and) match not permissions of `r`ead present
-prune # ignore what matched above and do not descend into it
-o # or (whatever didn't match above)
-type f # match type is file
-name 'netcdf' # (and) match name is 'netcdf'
-print # print what matched above
Lưu ý rằng không có lần cuối -print
, tôi nhận được một số mục bổ sung được hiển thị (không liên quan gì -name 'netcdf'
); những -print
đảm bảo rằng chỉ phù hợp với tên được in (nếu có).