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 findoder einem anderen find, der das -readableund -executablePrä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 -aOperator (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 -printOption einige zusätzliche Elemente angezeigt werden (die nichts damit zu tun haben -name 'netcdf'). das -printgewährleistet , dass nur die Namen Streichhölzer gedruckt werden (falls vorhanden).