# find / -name test -print
/usr/share/alsa/init/test
/usr/bin/test
/usr/lib/ruby/1.9.1/test
Busca un archivo llamado test que empieza con / y luego muestra el nombre del archivo en pantalla
# find / -mount -name test -print
Buscará lo mismo pero omitiendo los directorios superpuestos La sintaxis completa de find es
find [path] [opciones] [tests] [acciones]
path
puede usar rutas absolutas y relativas, también se pueden especificar múltiples rutas (/home /usr)
opciones
-depth | Rastrea los contenidos de un directorio antes de buscar en el propio directorio | |
-follow | Sigue los enlaces simbólicos | |
-maxdepths n | Rastrea n niveles de directorios | |
-mount | No busca en otros sistemas de ficheros |
comprobaciones
find evaluará uno por uno todos los archivos que encuentre y les aplicará las comprobaciones que se le indican. Si una prueba devuelve false find abandona el archivo en cuestión y va a por el siguiente, si una prueba envía true find continúa con la siguiente prueba o acción en el archivo actual. Las siguientes son algunas pruebas.
-atime n | Se accedió al archivo hace n días | |
-mtime n | Se modificó por última vez hace n días | |
-name patrón | El nombre del archivo, excluyendo cualquier ruta, se corresponde con el patrón proporcionado. Para asegurar que el patrón se transmite directamente a find y no es evaluado por la shell hay que incluirlo entre comillas | |
-newer otherfile | El archivo que se busca es más reciente que otherfile | |
-type c | El archivo es del tipo c ("d" directorio, "f" fichero regular, etc ... mirar manual | |
-user name | El archivo pertenece al usuario especificado |
También se pueden combinar las pruebas usando operadores
Op. abreviado | Op. completo | Significado | |
! | -not | invierte la comprobación | |
-a | -and | ambas comprobaciones deben ser true | |
-o | -or | alguna de las comprobaciones debe ser true |
Se puede configurar la preferencia de comprobaciones y operadores usando paréntesis. Como estos tienen un significado especial para la shell hay que "escaparlos" utilizando barras invertidas, además, si se usa un patrón para el nombre del archivo este debe ser incluído entre comillas para que el nombre no sea expandido por la shell sino que se transmita directamente al comando find.
acciones
-exec comando | Ejecuta un comando. Debe terminar con una pareja de \; | |
-ok command | Igual que exec pero solicita la confirmación del usuario para cada archivo en los que se cumpla el comando. Debe acabar también con una pareja de \; | |
Muestra el nombre del archivo | ||
-ls | Usa el comando ls -l en el archivo actual |
Los comandos -exec y -ok adoptan los parámetros posteriores en la línea como parte de sus parámetros hasta terminar con una secuencia \;. Esto es debido a que ejecutan un comando insertado cuyas opciones terminan ahí.
La cadena mágica "{}" es un parámetro especial para los comandos -exec o -ok que se reemplaza con la ruta absoluta al archivo actual.
No hay comentarios:
Publicar un comentario