Buenas!.
Tengo un árbol de directorios tal como este:
Cita:.
├── directorio1
│ └── archivo_dir1
├── directorio2
│ └── archivo_dir2
└── directorio3
└── archivo_dir3
Y quiero evitar que el comando Find me muestre el contenido del directorio2. Imaginar que fuera mucho más grande.
Es necesario usar la opción "
-prune" y "
-o"
Código:
find . -path ./directorio2 -prune -o -type f
La salida fue:
Cita:
./directorio2
./directorio1/archivo_dir1
./directorio3/archivo_dir3
Podemos incluso excluir una lista de directorios. Ejemplo, no quiero mostrar los archivos contenidos en el directorio2 y el directorio3:
Código:
find . \( -path ./directorio2 -o -path ./directorio3 \) -prune -o -type f
Ahora imaginar que estamos en el directorio principal del sistema y queremos hacer una búsqueda para que nos muestre los archivos creados, modificados de hoy
"
pero" que nos evite ver todo lo que cuelga del directorio "
media"
Código:
find . -path ./media -prune -o -type f -newermt $(date -I)
Probablemente tengamos que ejecutarlo como root.
Lo cierto es que en /media tengo una partición para almacenar cosas de windows y es que salían todas por la fecha de hoy (los permisos de windows),
si no usaba
-prune -o
Hay otra opción pero no me funcionó como debiese, es usar "
-not -path".
Creo que el orden de la instrucción última que os he mostrados es muy importante en la forma de como se escribe, podría no funcionar si no se
hace en un orden concreto.
Saludos