Ich möchte nur auf diese Antwort von @Gilles in Ausschlusspfade hinweisen, bei denen sich jemand über Berechtigungen beschwert - Unix & Linux Stack Exchange ; es handelt sich im Grunde genommen um ein Konstrukt find
, mit dem es keine unlesbaren Verzeichnisse herabführt, und in diesem Sinne ist es wahrscheinlich auch ein bisschen schneller.
Das scheint bei mir zu funktionieren:
Mit GNU find
oder einem anderen find
, der das -readable
und -executable
Prädikate unterstützt:
find / -type d ! \( -readable -executable \) -prune -o -type f -name netcdf -print
oder auch das:
find / -type d ! -perm -g+r,u+r,o+r -prune -o -type f -name 'netcdf' -print
Aus irgendeinem Grund muss ich alle hinzufügen g+r,u+r,o+r
(Abkürzung dafür ist a+r
), andernfalls erhalte ich möglicherweise immer noch Treffer mit "Erlaubnis verweigert", wenn eine davon weggelassen wird.
Hier ist eine Aufschlüsselung, wie ich dies sehe (beachten Sie, dass der -a
Operator (und) in zwischen zwei Prädikaten impliziertfind
ist ):
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
Beachten Sie, dass ohne die letzte -print
Option einige zusätzliche Elemente angezeigt werden (die nichts damit zu tun haben -name 'netcdf'
). das -print
gewährleistet , dass nur die Namen Streichhölzer gedruckt werden (falls vorhanden).