GNU/Linux >> Linux Esercitazione >  >> Linux

Escludere i percorsi che fanno sì che Find si lamenti delle autorizzazioni?

Devo generare un elenco di file da un volume del disco. Alcune delle directory (tutte le directory nascoste nella directory principale) hanno strani permessi che fanno sì che find si lamenti.

Cerco di escludere tutti questi percorsi, ma una directory si lamenta ancora:

find . -type f -not -path './.*/*'
find: ./.DocumentRevisions-V100: Permission denied

I diritti sono così (impostati così dal sistema operativo, quindi suppongo che non dovrebbero essere rovinati).

d--x--x--x root  wheel   .DocumentRevisions-V100

Come faccio a modificare il find dichiarazione di omettere effettivamente tutte le directory nascoste per non lamentarsi. (Non voglio fare 2>/dev/null come voglio sapere su altri problemi).

Risposta accettata:

Con GNU find o qualsiasi altro find che supporti il ​​-readable e -executable predicati:

find . -type d ! ( -readable -executable ) -prune -o -type f -not -path './.*/*' -print

Per prima cosa eliminiamo le directory che non sono attraversabili. Se tale condizione non si applica, prova le altre condizioni.

Se il tuo find non ha queste opzioni, puoi confrontare i permessi del file.

find . -type d ! -perm -u+rx -prune -o -type f ! -path './.*/*' -print

Linux
  1. Come controllare i permessi con il comando trova

  2. Trova Directory di esclusione?

  3. Escludere un elenco di directory da Unix Find Command?

  4. Trova il file quindi cd in quella directory in Linux

  5. Come escludere una directory in find . comando

Come trovare file in base alle loro autorizzazioni in Linux

Autorizzazioni Linux:come trovare le autorizzazioni di un file

Escludi directory in Trova?

Come escludo percorsi assoluti per tar?

bash trova le directory

Come posso fare in modo che find escluda la cartella in cui cerca?