El comando find es útil para buscar ficheros.
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Sintaxis del comando find
find [-H] [-L] [-P] [-Olevel] [-D debugopts] [path...] [expression]
Buscar archivos en una jerarquía de directorios es la función del comando find.
La ruta de acceso predeterminada ([path...]) del comando find es el directorio actual y la expresión ([expression]) predeterminada es -print.
La expresión del comando find puede ser: operadores, opciones, pruebas y acciones.
Opciones del comando find
Las opciones -H, -L y -P del comando find controlan el tratamiento de los enlaces simbólicos. Los argumentos de la línea de comandos que siguen a estos se toman como nombres de archivos o directorios para ser examinados, hasta el primer argumento que comienza con '-', o el argumento '(' o '!'. Ese argumento y cualquiera de los siguientes argumentos se toma como la expresión que describe lo que se busca.
Opción | Descripción |
-P | el comando find nunca sigue los enlaces simbólicos. Este es el comportamiento estándar. Cuando encuentra examina o muestra información sobre archivos, y el archivo es un enlace simbólico, la información utilizada se tomará de las propiedades del propio enlace simbólico. |
-L | el comando find sigue enlaces simbólicos. Cuando el comando find examina o visualiza información sobre archivos, la información utilizada se tomará de las propiedades del archivo al que apunta el enlace, no del enlace en sí (a menos que sea un enlace simbólico roto o find sea incapaz de examinar el archivo al que apunta el enlace). |
-H | con esta opción, el comando find no sige enlaces simbólicos, excepto mientras procesa los argumentos de la línea de comandos. Cuando el comando find examina o muestra información sobre archivos, la información utilizada se tomará de las propiedades del enlace simbólico en sí. La única excepción a este comportamiento es cuando un archivo especificado en la línea de comandos es un enlace simbólico, y el enlace se puede resolver. Para esa situación, la información utilizada se toma desde lo que apunta el enlace (es decir, se sigue el enlace). |
Si el comando find especifica más de uno de -H, -L y -P, cada uno anula a los demás; el último que aparece en la línea de comando tiene efecto. Dado que es el valor predeterminado, la opción -P debe considerarse en vigor a menos que se especifique -H o -L.
El elemento -D debugopts del comando find
Muestra información de diagnóstico; esto puede ser útil para diagnosticar problemas de por qué el comando find no está haciendo lo que desea. La lista de opciones de depuración del comando find debe estar separada por comas.
Opciones de depuración del comando find
Opción | Descripción |
exec | Mostrar información de diagnóstico del comando find relacionada con -exec, -execdir, -ok y -okdir |
opt | esta opción del comando find muestra información de diagnóstico relacionada con la optimización del árbol de expresión; ver la opción -O. |
rates | para visualizar un resumen que indica la frecuencia con la que cada operación tuvo éxito o falló es la función de esta opción del comando find. |
search | opción de depuración del comando find para avegar por el árbol de directorios detalladamente. |
stat | muestra mensajes a medida que se examinan los archivos con las llamadas al sistema stat y lstat. El comando find intenta minimizar tales llamadas. |
tree | con esta opción del comando find se muestra el árbol de expresiones en su forma original y optimizada. |
all | con esta opción, el comando find habilita todas las demás opciones de depuración. |
help | explicar las opciones de depuración es la finalidad de esta opción del comando find. |
El elemento -Olevel del comando find
Habilita la optimización de consultas. El comando find reordena las pruebas para acelerar la ejecución mientras preserva el efecto general; es decir, los predicados con efectos secundarios no se reordenan entre sí.
Optimizaciones del comando find
Optimización | Descripción |
0 | esta optimización del comando find es equivalente al nivel de optimización 1. |
1 | Este es el nivel de optimización predeterminado del comando find y corresponde al tradicional comportamiento. Las expresiones se reordenan para que las pruebas basadas solo en los nombres de los archivos (por ejemplo, -name y -regex) se realicen primero. |
2 | Cualquier prueba -type o -xtype del comando find se realiza después de cualquier prueba basada solo en los nombres de los archivos, pero antes de cualquier prueba que requiera información del in odo. |
3 | En este nivel de optimización del comando find, el optimizador de consultas completo basado en costos está habilitado. El orden de las pruebas se modifica para que las pruebas económicas (es decir, rápidas) se realicen primero y las más costosas se realicen después, si es necesario. |
El elemento EXPRESSION del comando find
La parte de la línea de comando después de la lista de puntos de partida es la expresión. Este elemento del comando find es un tipo de especificación de consulta que describe cómo hacemos coincidir los archivos y qué hacemos con los archivos que coincidieron. Una expresión se compone de una secuencia de :
Secuencia | Descripción |
Pruebas | Las pruebas del comando find devuelven un valor verdadero o falso, generalmente sobre la base de alguna propiedad de un archivo que estamos considerando. La prueba -empty, por ejemplo, es verdadera solo cuando el archivo actual está vacío. |
Accciones | Las acciones del comando find tienen efectos secundarios (como mostrar algo en la salida estándar) y devuelven verdadero o falso, generalmente en función de si tienen éxito o no. La acción -print, por ejemplo, muestra el nombre del archivo actual. |
Opciones Glogables | Las opciones globales del comando find afectan el funcionamiento de las pruebas y acciones especificadas en cualquier parte de la línea de comandos. Las opciones globales del comando find siempre devuelven verdadero. La opción - depth, por ejemplo, hace que el comando find recorra el sistema de archivos en orden de profundidad. |
Opciones Posicionales | Las opciones posicionales del comando find afectan sólo a las pruebas o acciones que las siguen. Las opciones posicionales del comando find siempre devuelven verdadero. La opción -regextype, por ejemplo, es posicional, especificando el dialecto de expresión regular para expresiones regulares que ocurren más adelante la línea de comando. |
Operadores | Los operadores del comando find unen los otros elementos dentro de la expresión. incluyen por ejemplo -o (que significa OR lógico) y -a (que significa AND lógico). Cuando falta un operador, se asume -a. |
Pruebas del comando find
Algunas pruebas del comando find, por ejemplo, -newerXY y -samefile, permiten la comparación entre el archivo que se está examinando actualmente y algún archivo de referencia especificado en la línea de comandos. Cuando se utilizan estas pruebas, la interpretación del archivo de referencia está determinada por las opciones -H, -L y -P y cualquier anterior --follow, pero el archivo de referencia solo se examina una vez. Si el archivo de referencia no se puede examinar (por ejemplo, la llamada al sistema stat(2) falla), se emite un mensaje de error y el comando find sale con un estado distinto de cero.
Se puede especificar un argumento numérico n para las pruebas del comando find (como -amin, -mtime, -gid, -inum, -links, -size, -uid y -used).
Argumentos de las pruebas del comando find
Argumento | Descripción |
+n | mayor que n. |
-n | menor de n |
n | exactamente n. |
Algunas de las pruebas soportadas por el comando find
Prueba | Descripción |
-amin n | esta prueba del comnado find indica que se accedió al archivo por última vez hace menos de, más de o exactamente n minutos. |
-anewer reference | La hora del último acceso al archivo actual es más reciente que la del último modificación de datos del archivo de referencia. Si la referencia es un enlace simbólico y la opción -H del comando find o la opción -L están activas, siempre se utiliza la hora de la última modificación de datos del archivo al que apunta. |
-atime n | Se accedió al archivo por última vez hace menos de, más de o exactamente n*24 horas. Cuando el comando find calcula cuántos períodos de 24 horas atrás se accedió al archivo por última vez, se ignora cualquier parte fraccionaria, por lo que para que coincida con -atime +1, se debe haber accedido a un archivo hace al menos dos días. |
-cmin n | esta prueba del comando find indica que el estado del archivo se modificó por última vez hace menos de, más de o exactamente n minutos. |
Algunas de las acciones del comando find
Acción | Descripción |
-delete | acción del comando find para borrar archivos; verdadero si la eliminación se realizó correctamente. Si la eliminación falla, se emite un mensaje de error. Si -delete falla, el estado de salida del comando find será distinto de cero (cuando finalmente salga). El uso de -delete activa automáticamente la opción `-depth'. |
-fls file | verdadero; como -ls pero escribe en el archivo como -fprint. El archivo de salida siempre se crea, incluso si el predicado nunca coincide. |
-fprint file | verdadero; muestra el nombre completo del archivo en el archivo. Si el archivo no existe cuando se ejecuta la búsqueda con el comando find, se crea; si existe, se trunca. Los nombres de archivo /dev/stdout y /dev/stderr se manejan de forma especial; se refieren a la salida estándar y la salida de error estándar, respectivamente. |
-fprint0 file | verdadero; como -print0 pero escribe en el archivo como -fprint. El archivo de salida siempre se crea, incluso si el predicado nunca coincide. |
-fprintf file format | Verdadero; como -printf pero escribe en el archivo como -fprint. El archivo de salida siempre se crea, incluso si el predicado nunca coincide. |
Operadores del comando find
Enumerados en orden de precedencia decreciente:
Operador | Descripción |
( expr ) | operador del comando find para forzar precedencia. Dado que los paréntesis son especiales para el shell, normalmente necesitará entrecomillarlos. Muchos de los ejemplos en esta página del manual usan barras invertidas para este propósito: `\(...\)' en lugar de `(...)'. |
! expr | este operador del comando find es verdadero si expr es falso. |
-not expr | este operador del comando find es igual que ! expr, pero no es compatible con POSIX. |
expr1 expr2 | dos expresiones seguidas se consideran unidas con una -a implícita; expr2 no se evalúa si expr1 es falso. |
expr1 -a expr2 | este operador del comando find es lo mismo que expr1 expr2. |
expr1 -and expr2 | este operador del comando find es igual que expr1 expr2, pero no es compatible con POSIX. |
expr1 -o expr2 | o; expr2 no se evalúa si expr1 es verdadero. |
expr1 -or expr2 | operador del comando findd que es igual que expr1 -o expr2, pero no compatible con POSIX. |
expr1 , expr2 | Listar es la utilidad de este operador del comando find; tanto expr1 como expr2 siempre se evalúan. El valor de expr1 se descarta; el valor de la lista es el valor de expr2. El operador coma puede ser útil para buscando varios tipos diferentes de cosas, pero atravesando la jerarquía del sistema de archivos solo una vez. |
Opciones posicionales del comando find
Siempre devuelven verdadero las opciones posicionales del comando find. Afectan sólo a las pruebas que ocurren más tarde en la línea de comandos.
Opción | Descripción |
-daystart | con esta opción del comando find se mide los tiempos (para -amin, -atime, -cmin, -ctime, -mmin y -mtime) desde el comienzo de hoy en lugar de hace 24 horas. Esta opción solo afecta a las pruebas que aparecen más adelante en la línea de comandos. |
-follow | opción obsoleta; use la opción -L del comando find en su lugar. |
-regextype type | con esta opción del comando find se cambia la sintaxis de expresión regular entendida por las pruebas -regex e -iregex que ocurren más tarde en la línea de comando. |
-warn, -nowarn | activar o desactiva los mensajes de advertencia es la finalidad de esta opción del comando find. Estas advertencias se aplican solo a la línea de comando en uso, no a las condiciones que el comando find podría encontrar cuando busca directorios. El comportamiento predeterminado de esta opción del comando find corresponde a -advertir si la entrada estándar es un tty, y -noadvertir en caso contrario. |
Opciones globales del comando find
Las opciones globales del comando find siempre devuelven verdadero. Las opciones globales surten efecto incluso para las pruebas que se producen anteriormente en la línea de comandos. Para evitar confusiones, las opciones globales del comando find deben especificarse en la línea de comando después de la lista de puntos de inicio, justo antes de la primera prueba, posicional opción o acción. Si especifica una opción global en algún otro lugar, el comando find emitirá un mensaje de advertencia que explica que esto puede ser confuso.
Opción | Descripción |
-depth | esta opción del comando find procesa el contenido de cada directorio antes que el propio directorio. La acción -delete también implica -depth. |
-help, --help | muestra un resumen del comando find y sale. |
-ignore_readdir_race | Normalmente, el comando find emitirá un mensaje de error cuando no pueda crear un archivo. Si da esta opción del comando find y se elimina un archivo entre el momento en que find lee el nombre del archivo del directorio y el momento en que intenta iniciar el archivo, no hay mensaje de error. Esto también se aplica a los archivos o directorios cuyos nombres se dan en la línea de comandos. |
-maxdepth levels | desciende en la mayoría de los niveles (un número entero no negativo) niveles de directorios por debajo de los puntos de partida. El uso de -max depth 0 significa que solo se aplican las pruebas y acciones a los propios puntos de partida. |
-mindepth levels | con esta opción del comando find se indica no aplicar ninguna prueba o acción en niveles inferiores a los niveles (un número entero no negativo). Usar -min depth 1 significa procesar todos los archivos excepto los puntos de inicio. |
-mount | no descienda directorios en otros sistemas de archivos. Un nombre alternativo para -xdev, por compatibilidad con algunas otras versiones del comando find. |
-noignore_readdir_race | para desactivar el efecto de -ignore_readdir_race se utiliza esta opción del comando find. |
-noleaf | esta opción del comando find indica no optimizar suponiendo que los directorios contienen 2 subdirectorios menos que su número de enlaces fijos. Esta opción es necesaria cuando se buscan sistemas de archivos que no siguen la convención de enlace de directorio de Unix (como sistemas de archivos de CD-ROM o MS-DOS, elementos o puntos de montaje de volumen AFS). Esto da un aumento significativo en la velocidad de búsqueda con el comando find. |
-version, --version | muestra la versión del comando find y sale. |
-xdev | esta opción del comando find se usa para indicar no desciender directorios en otros sistemas de archivos. |
Nota:
Más información sobre el comando find podrá encontarla tecleando "man find" en la línea de comandos.
Ejemplos del comando find
- uso del comando find para encontrar archivos llamados juan en o debajo del directorio /tmp y elimínarlos.
find /tmp -name juan -type f -print | xargs /bin/rm -f
- Uso del comando find para buscar varios tipos de archivos.
find /tmp -type f,d,l
- Uso del comando find para buscar archivos con el nombre juan y detenerse cuando encontremos el primero.
find / -name juan -print -quit
comando split |
comandos linux |
comando updatedb |
- Obtener vínculo
- X
- Correo electrónico
- Otras apps