FIND
Section: Misc. Reference Manual Pages (1L)
Index Return to Main
Contents
NOMBRE
find - busca ficheros en un árbol de directorios
SINOPSIS
find [camino...] [expresión]
DESCRIPCIÓN
Esta página del Manual documenta la versión de GNU de find.
find recorre el árbol de directorio cuya raíz reside en cada
nombre de fichero dado, evaluando de izquierda a derecha la
expresión especificada, según las reglas de precedencia (vea la
sección de OPERADORES), hasta que se conoce el resultado (la parte
izquierda es falsa para operaciones and, verdadera para
or), en cuyo punto find se mueve al siguiente nombre
de fichero.
El primer argumento que comience con `-', `(', `)', `,', o `!'
se toma como el principio de la expresión; cualesquier argumentos
antes de él son caminos a recorrer, y cualesquier argumentos tras
él forman el resto de la expresión. Si no se da ningún camino, se
toma el directorio de trabajo. Si no se da ninguna expresión, se
sobreentiende la expresión `-print'.
find acaba con código de estado 0 si todos los ficheros
se procesan satisfactoriamente, mayor que 0 si ocurre un error.
EXPRESIONES
La expresión está hecha de opciones (que afectan a todas las
operaciones en vez de al procesamiento de un fichero específico, y
siempre devuelven verdad), comparaciones (que devuelven un valor
verdadero o falso), y acciones (que tienen efectos colaterales y
devuelven un valor verdadero o falso), todos separados por
operadores. Donde se omita el operador, se sobreentiende -and. Si
la expresión no contiene ninguna acción, aparte de -prune, se
ejecuta -print en todos los ficheros para los que la expresión dé
verdadera.
OPCIONES
Todas las opciones siempre devuelven verdadero. Siempre tienen
efecto, en lugar de ser procesadas solamente cuando se alcance su
sitio en la expresión. Por lo tanto, por claridad, lo mejor es
ponerlas siempre al principio de la expresión.
- -daystart
- Mide los tiempos (para -amin, -atime, -cmin, -ctime, -mmin, y
-mtime) desde el principio del día de hoy en lugar de desde hace 24
horas.
- -depth
- Procesa cada contenido del directorio antes del propio
directorio.
- -follow
- Desreferencia enlaces simbólicos. Implica -noleaf.
- -help, --help
- Muestra un sumario del modo de empleo de find y
acaba.
- -maxdepth niveles
- Desciende como mucho niveles (un entero no negativo)
niveles de directorios por debajo de los argumentos de la línea de
órdenes. `-maxdepth 0' significa que sólo se aplicarán las
comparaciones y acciones a los argumentos de la línea de
órdenes.
- -mindepth niveles
- No aplica comparaciones ni acciones a niveles menores de
niveles (un entero no negativo). `-mindepth 1' significa
procesar todos los ficheros excepto los argumentos de la línea de
órdenes.
- -mount
- No descender a directorios en otros sistemas de ficheros. Un
nombre alternativo para -xdev, por compatibilidad con algunas otras
versiones de find.
- -noleaf
- No optimiza suponiendo que los directorios contienen dos
subdirectorios menos que lo que dice su número de enlaces duros.
Esta opción es necesaria cuando se recorren sistemas de ficheros
que no siguen el convenio de Unix sobre los enlaces de directorios,
como sistemas de ficheros ISO-9660 (de un CD-ROM) o FAT (de MS-DOS
o Windows), o puntos de montaje de volúmenes AFS (Andrew File
System). Cada directorio de un sistema de ficheros normal de Unix
(UFS, ext2fs, etc.) tiene por lo menos dos enlaces duros: su nombre
y su entrada `.' (punto). Además, sus subdirectorios (si los hay)
tienen cada uno una entrada `..' enlazada a este directorio. Cuando
find está examinando un directorio, después de que ha hecho
stat() en dos subdirectorios menos de lo que dice el número de
enlaces del directorio, sabe que el resto de las entradas del
directorio son no-directorios (ficheros `hoja' [`leaf' en inglés]
en el árbol del directorio). Si sólo hay que examinar los nombres
de ficheros, no hay necesidad de llamar a stat() sobre ellos, lo
cual proporciona un incremento significativo en la velocidad del
recorrido.
- -version, --version
- Muestra el número de versión de find y acaba.
- -xdev
- No desciende a directorios en otros sistemas de ficheros. Vea
-mount más arriba.
COMPARACIONES
Los argumentos numéricos pueden especificarse como
- +n
- para mayor que n,
- -n
- para menor que n,
- n
- para exactamente n.
- -amin n
- Se ha accedido al fichero por última vez hace n
minutos.
- -anewer fichero
- Se ha accedido al fichero por última vez más recientemente que
cuando fichero fue modificado. -anewer está afectado por
-follow solamente si -follow va antes de -anewer en la línea de
órdenes.
- -atime n
- Se ha accedido al fichero por última vez hace n×24
horas.
- -cmin n
- El status del fichero se cambió por última vez hace n
minutos.
- -cnewer fichero
- El status del fichero se cambió por última vez más
recientemente que cuando se modificó fichero. -cnewer está
afectado por -follow solamente si -follow va antes de -cnewer en la
línea de órdenes.
- -ctime n
- EL status del fichero se cambió por última vez hace n×24
horas.
- -empty
- El fichero está vacío y es o un fichero regular o un
directorio.
- -false
- Siempre da falso.
- -fstype tipo
- El fichero está en un sistema de ficheros de tipo tipo.
Los tipos válidos de sistemas de ficheros varían según la versión
de Unix; una lista incompleta de tipos de sistemas de ficheros que
se aceptan en algunas versiones de Unix es: ufs, 4.2, 4.3, nfs,
tmp, mfs, S51K, S52K. Se puede usar -printf con la directiva %F
para ver los tipos de sus sistemas de ficheros. (En Linux, cat
/proc/filesystems dará una lista de los tipos de sistemas de
ficheros reconocidos.)
- -gid n
- El GID numérico del fichero es n.
- -group grupo
- El fichero pertenece al grupo grupo (se permite un GID
numérico).
- -ilname patrón
- Como -lname, pero la concordancia no hace caso de mayúsculas ni
minúsculas.
- -iname patrón
- Como -name, pero la concordancia no hace caso de mayúsculas ni
minúsculas. Por ejemplo, los patrones `fo*' y `F??' concuerdan con
los nombres de ficheros `Foo', `FOO', `foo', `fOo', etc.
- -inum n
- El fichero tiene de número-i n.
- -ipath patrón
- Como -path, pero la concordancia no hace caso de mayúsculas ni
minúsculas.
- -iregex patrón
- Como -regex, pero la concordancia no hace caso de mayúsculas ni
minúsculas.
- -links n
- El fichero tiene n enlaces.
- -lname patrón
- El fichero es un enlace simbólico cuyos contenidos concuerdan
con el patrón del shell patrón. Los metacaracteres no tratan
especialmente a `/' ni a `.'.
- -mmin n
- Los datos del fichero fueron modificados por última vez hace
n minutos.
- -mtime n
- Los datos del fichero fueron modificados por última vez hace
n×24 horas.
- -name patrón
- La base del nombre del fichero (el camino sin los directorios)
concuerda con el patrón del shell patrón. Los metacaracteres
(`*', `?' y `[]') no concuerdan con un `.' al principio del nombre
base. Para omitir un directorio y los ficheros bajo él, emplee
-prune; vea un ejemplo en la descripción de -path.
- -newer fichero
- El fichero fue modificado más recientemente que fichero.
-newer es afectado por -follow solamente si -follow va antes de
-newer en la línea de órdenes.
- -nouser
- Ningún usuario se corresponde con el UID numérico del
fichero.
- -nogroup
- Ningún grupo se corresponde con el GID numérico del
fichero.
- -path patrón
- El nombre del fichero concuerda con el patrón del shell
patrón. Los metacaracteres no tratan de forma especial a `/'
o a `.'; así, por ejemplo,
find . -path './sr*sc'
mostrará una entrada para un directorio llamado './src/misc' (si
es que existe). Para omitir un árbol entero de directorio, emplee
-prune en vez de comprobar cada fichero en el árbol. Por ejemplo,
para pasar el directorio `src/emacs' y todos los ficheros y
directorios bajo él, y mostrar los nombres de los otros ficheros
encontrados, haga algo como esto:
find . -path './src/emacs' -prune -o -print
- -perm modo
- Los bits de permiso del fichero son exactamente modo
(octal o simbólico). Los modos simbólicos utilizarán 0 como punto
de partida.
- -perm -modo
- Todos los bits de permiso modo están activos para el
fichero.
- -perm +modo
- Cualquiera de los bits de permiso de modo está activo
para el fichero.
- -regex patrón
- El nombre del fichero concuerda con la expresión regular
patrón. Esta concordancia es en el camino entero, no es una
búsqueda. Por ejemplo, para un fichero llamado `./fubar3', Ud.
puede emplear la expresión regular `.*bar.' or `.*b.*3', mas no
`b.*r3'.
- -size n[bckw]
- El fichero emplea n unidades de espacio. Las unidades
son bloques de 512 bytes si no se dice otra cosa o si la letra `b'
sigue a n, bloques de bytes si se pone la letra `c',
kilobytes con la `k', o palabras de 2 bytes con la `w'. El tamaño
no cuenta bloques indirectos, pero sí cuenta bloques en ficheros
esparcidos que no están realmente asignados.
- -true
- Siempre da verdadero.
- -type c
- El fichero es de tipo c:
-
- b
- especial de bloques (tamponado)
- c
- especial de caracteres (sin tamponar)
- d
- directorio
- p
- tubería con nombre (FIFO)
- f
- fichero regular
- l
- enlace simbólico
- s
- zócalo (socket)
- -uid n
- El UID numérico del propietario del fichero es n.
- -used n
- Se accedió por última vez al fichero n días después de
que se cambió por última vez su estado.
- -user usuario
- El propietario del fichero es el usuario usuario (se
permite un UID numérico).
- -xtype c
- Lo mismo que -type a menos que el fichero sea un enlace
simbólico. Para enlaces simbólicos: si no se ha dado -follow,
verdad si el fichero es un enlace a un fichero de tipo c; si
no, verdad si c es `l'. En otras palabras, para enlaces
simbólicos, -xtype comprueba el tipo del fichero que -type no
comprueba.
ACCIONES
- -exec orden ;
- Ejecuta orden; verdad si se devuelve el status 0. Todos
los argumentos que siguen a find se toman como de la orden
hasta que se encuentre uno consistente en `;'. La cadena `{}' se
reemplaza por el nombre del fichero que se está procesando; en
cualquier sitio de los argumentos de la orden, no sólo en
argumentos donde esté sola, como en algunas otras versiones de
find. Ambas construcciones pueden necesitar `escaparse' (con
una `\') o entrecomillarse, para protegerlas de la expansión que
efectuaría el shell. La orden se ejecuta en el directorio de
comienzo.
- -fls fichero
- Verdad; como -ls pero escribe en fichero como
-fprint.
- -fprint fichero
- Verdad; escribe el nombre completo del fichero en
fichero. Si fichero no existe cuando se ejecuta
find, se crea; si existe, se trunca. Los nombres de ficheros
``/dev/stdout'' y ``/dev/stderr'' se manejan de manera especial; se
refieren a la salida estándar y la salida estándar de errores,
respectivamente.
- -fprint0 fichero
- Verdad; como -print0 pero escribe en fichero como
-fprint.
- -fprintf fichero formato
- Verdad; como -printf pero escribe en fichero como
-fprint.
- -ok orden ;
- Como -exec pero pregunta primero al usuario (en la entrada
estándar); si la respuesta no comienza con `y' o `Y' (o quizás el
equivalente local, en español `s' o `S'), no se ejecuta la orden, y
devuelve falso.
- -print
- Verdad; imprime el nombre completo del fichero en la salida
estándar, seguido por un salto de línea.
- -print0
- Verdad; imprime el nombre completo del fichero en la salida
estándar, seguido por un carácter nulo. Esto permite que nombres de
ficheros que contengan saltos de línea sean correctamente
interpretados por programas que procesen la salida de
find.
- -printf formato
- Verdad; imprime formato en la salida estándar,
interpretando secuencias de escape `\' y directivas `%'. Las
anchuras de campo y precisiones pueden especificarse como en la
función de C `printf'. De forma contraria a lo que hace -print,
-printf no añade un salto de línea al final de la cadena. Las
secuencias de escape y directivas son:
-
- \a
- La campana de alarma.
- \b
- Espacio atrás.
- \c
- Para la impresión de este formato inmediatamente y vuelca el
búfer de salida.
- \f
- Salto de página.
- \n
- Salto de línea.
- \r
- Retorno de carro.
- \t
- Tabulador horizontal.
- \v
- Tabulador vertical.
- \\
- Una barra inclinada inversa literal (`\').
Un carácter `\' seguido por otro cualquiera distinto de los
anteriores se trata como un carácter ordinario, por lo que se
imprimirán ambos.
- %%
- Un signo de porcentaje literal `%'.
- %a
- El tiempo de último acceso al fichero en el formato devuelto
por la función de C `ctime()'.
- %Ak
- El tiempo de último acceso al fichero en el formato
especificado por k, que es o bien `@' o bien una directiva
válida para la función de C `strftime()'. Los valores posibles para
k se listan abajo; algunos de ellos pueden no estar
disponibles en todos los sistemas, debido a diferencias en la
función `strftime()' entre sistemas.
-
- @
- segundos desde el 1 de Enero de 1970 a las 00:00 h GMT.
Campos de tiempo:
- H
- hora (00..23)
- I
- hora (01..12)
- k
- hora ( 0..23)
- l
- hora ( 1..12)
- M
- minuto (00..59)
- p
- AM o PM, en su representación local
- r
- hora, formato de 12 horas (hh:mm:ss [AP]M)
- S
- segundo (00..61)
- T
- tiempo, formato de 24 horas (hh:mm:ss)
- X
- representación local de la hora (H:M:S)
- Z
- zona horaria (e.g., CET), o nada si el huso horario no es
determinable
Campos de fecha:
- a
- nombre local abreviado del día de la semana (Dom..Sáb)
- A
- nombre local completo del día de la semana, longitud variable
(Domingo..Sábado)
- b
- nombre local abreviado del mes (Ene..Dic)
- B
- nombre local completo del mes, longitud variable
(Enero..Diciembre)
- c
- fecha y hora en representación local (Sáb 4 Nov 12:02:33 CET
1989)
- d
- día del mes (01..31)
- D
- fecha (mm/dd/aa)
- h
- lo mismo que b
- j
- día del año (juliano) (001..366)
- m
- mes numérico (01..12)
- U
- número de la semana del año con el Domingo como primer día de
la semana (00..53)
- w
- día de la semana, numérico (0..6)
- W
- número de la semana del año como el Lunes como el primer día de
la semana (00..53)
- x
- representación local de la fecha (dd/mm/aa)
- y
- los últimos dos dígitos del año (00..99)
- Y
- año (1970...)
- %b
- El tamaño del fichero en bloques de 512 bytes (redondeado)
- %c
- El tiempo del último cambio del estado del fichero en el
formato devuelto por la función de C `ctime()'.
- %Ck
- El tiempo del último cambio del estado del fichero en el
formato especificado por k, que es el mismo que para
%A.
- %d
- La profundidad en el árbol del directorio; 0 significa que el
fichero es un argumento de la línea de órdenes.
- %f
- El nombre del fichero sin los directorios (sólo el último
elemento del camino).
- %F
- Tipo del sistema de ficheros donde está el fichero; este valor
puede emplearse para -fstype.
- %g
- El nombre de grupo al que pertenece el fichero, o el GID
numérico si el grupo no tiene nombre.
- %G
- El GID numérico del grupo al que pertenece el fichero.
- %h
- Los directorios del camino del fichero (todos los componentes
del camino menos el último elemento).
- %H
- Argumento de la línea de órdenes bajo el que se ha encontrado
el fichero.
- %i
- El número-i del fichero (en base 10).
- %k
- El tamaño del fichero en bloques de un kB (redondeado).
- %l
- El objeto de un enlace simbólico (la cadena vacía si el fichero
no es un enlace simbólico).
- %m
- Los bits de permiso del fichero (en octal).
- %n
- El número de enlaces duros del fichero.
- %p
- El nombre del fichero.
- %P
- El nombre del fichero con el nombre del argumento de la línea
de órdenes bajo el que se ha encontrado, quitado.
- %s
- El tamaño del fichero en bytes.
- %t
- El tiempo de última modificación del fichero en el formato
devuelto por la función de C `ctime()'.
- %Tk
- El tiempo de última modificación del fichero en el formato
especificado por k, que es el mismo que para %A.
- %u
- El nombre del usuario propietario del fichero, o el UID si el
usuario no tiene nombre.
- %U
- El UID numérico del propietario del fichero.
Un carácter `%' seguido por cualquier otro distinto de los
recién mencionados no es tenido en cuenta (pero el otro carácter se
imprime).
- -prune
- Si -depth no se da, devuelve verdad; no desciende por el
directorio en curso.
Si -depth se da, devuelve falso; no tiene otro efecto.
- -ls
- Verdad; lista el fichero actual en el formato de `ls -dils' en
la salida estándar. Los números de bloques son en bloques de 1 kB,
a menos que la variable de ambiente POSIXLY_CORRECT esté definida,
en cuyo caso los bloques son de 512 B.
OPERADORES
Listados en orden de precedencia decreciente:
- ( expr )
- Fuerza la precedencia.
- ! expr
- Verdad si expr es falsa.
- -not expr
- Lo mismo que ! expr.
- expr1 expr2
- Y (implícito); expr2 no se evalúa si expr1 es
falsa.
- expr1 -a expr2
- Lo mismo que expr1 expr2.
- expr1 -and expr2
- Lo mismo que expr1 expr2.
- expr1 -o expr2
- O; expr2 no se evalúa si expr1 es verdad.
- expr1 -or expr2
- Lo mismo que expr1 -o expr2.
- expr1 , expr2
- Lista; expr1 y expr2 son, ambos, evaluados
siempre. El valor de expr1 se descarta; el valor de la lista
es el de expr2.
VÉASE TAMBIÉN
locate(1L),
locatedb(5L),
updatedb(1L),
xargs(1L)
Finding Files (``Buscando Ficheros''; en interactivo con
Info, o impreso en papel).
Index
- NOMBRE
- SINOPSIS
- DESCRIPCIÓN
- EXPRESIONES
-
- OPCIONES
- COMPARACIONES
- ACCIONES
- OPERADORES
- VÉASE TAMBIÉN
This document was created by man2html, using
the manual pages.
Time: 20:28:06 GMT, January 21, 2005