Sadece bu cevabı @Gilles'in İzinleri hakkında şikayette bulunma yollarını Hariç Tutma yollarında belirtmesini istiyorum - Unix ve Linux Stack Exchange ; temel olarak findokunamayan dizinlere iniş yapmamasını sağlayan bir yapı içerir ve bu anlamda muhtemelen biraz daha hızlıdır.
Bu benim için işe yarayacak gibi görünüyor:
GNU ile findveya başka herhangi bir finddesteklediğini -readableve -executableyüklemler'ıN:
find / -type d ! \( -readable -executable \) -prune -o -type f -name netcdf -print
veya ayrıca bu:
find / -type d ! -perm -g+r,u+r,o+r -prune -o -type f -name 'netcdf' -print
Bazı nedenlerden dolayı hepsini eklemem gerekiyor g+r,u+r,o+r(bunun için kısayol a+r), aksi halde bir tanesi dışarıda kalırsa, hala "İzin Reddedildi" isabetlerini alabilirim.
İşte bunu nasıl gördüğümün bir dökümü (içinde -a(ve) operatörünün iki yüklem arasında kapalıfind olduğuna dikkat edin ):
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
Sonuncusu olmadan, -printgösterilen bazı ekstra öğeleri aldığımı (bununla ilgisi olmayan -name 'netcdf') alacağımı unutmayın ; -printSadece isim maçlar basılır olmasını sağlar (eğer varsa).