GNU/Linux >> Tutoriales Linux >  >> Linux

¿Excluir rutas que hacen que Find se queje de los permisos?

Necesito generar una lista de archivos a partir de un volumen de disco. Algunos de los directorios (todos los directorios ocultos bajo el directorio raíz) tienen permisos extraños que hacen que find se queje.

Trato de excluir todas estas rutas, pero un directorio todavía se queja:

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

Los derechos son así (establecidos así por el sistema operativo, por lo que asumo que no deberían alterarse).

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

¿Cómo cambio el find declaración para omitir efectivamente todos los directorios ocultos para no quejarse. (No quiero hacer 2>/dev/null como quiero saber sobre otros problemas).

Respuesta aceptada:

Con GNU find o cualquier otro find que admita -readable y -executable predicados:

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

Primero eliminamos los directorios que no son transitables. Si esa condición no se aplica, intente con la(s) otra(s) condición(es).

Si tu find no tiene estas opciones, puede compararlas con los permisos del archivo.

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

Linux
  1. ¿Encontrar archivos que un usuario no puede leer?

  2. ¿Excluir directorio en Buscar?

  3. ¿Buscar directorio de exclusión?

  4. ¿Excluir una lista de directorios del comando Find de Unix?

  5. grep recursivo:excluir directorios específicos

Cómo encontrar archivos según sus permisos en Linux

Cómo auditar permisos con el comando de búsqueda

Permisos de Linux:cómo encontrar los permisos de un archivo

Excluir la lista de archivos de la búsqueda

Equivalente al comando de búsqueda de Unix en Windows

Recuento de archivos en cada subdirectorio