-print
Es la acción por defecto . Algunos find
predicados se consideran acciones en lugar de filtros o condiciones . Por ejemplo, -type f
no es una acción. -exec
es una acción aunque también se puede usar como condición.
Las acciones incluyen -print
, -exec
y -ok
. Algunas find
implementaciones tienen otros predicados de acción no estándar como el -print0
, -printf
, -execdir
, -okdir
, -ls
...
find files <some-predicates>
Donde ninguna de las acciones<some-predicates>
contener es equivalente a:
find files \( <some-predicates> \) -print
(tenga en cuenta los paréntesis anteriores que son importantes si hay algunos -o
operadores).
En caso de duda, lo mejor es usar -print
explícitamente (o -exec printf '%s\0' {} +
(o -print0
cuando esté disponible) para que la salida pueda ser procesada posteriormente).
La -print
acción predeterminada es especificada por POSIX. Algunas find
implementaciones antiguas requerían una explícita-print
, pero por lo general no se encuentran en la actualidad.
También tenga en cuenta que algunas find
implementaciones permiten omitir el files
, en cuyo caso prefieren buscar en el directorio actual. Es decir, para ellos
find
es equivalente a
find .
find . -print
Sin embargo, eso no es estándar, por lo que es mejor evitarlo.
En el extremo más detallado (y útil) del espectro, algunas find
implementaciones también permiten pasar rutas de archivos como argumento a una -f
opción como en:
find -f "$file1" -f "$file2" -print
Son las únicas find
implementaciones que permiten pasar rutas de archivos arbitrarias a find
. Otras implementaciones no pueden aceptar rutas de archivos como !
o -print
... entonces find "$file" -print
(o incluso find -- "$file" -print
) supone $file
que no es el nombre de un find
predicado (u opción en el primer caso).
Desafortunadamente, eso tampoco es estándar ni portátil.