-printEs la acción por defecto . Algunos findpredicados se consideran acciones en lugar de filtros o condiciones . Por ejemplo, -type fno es una acción. -execes una acción aunque también se puede usar como condición.
Las acciones incluyen -print, -execy -ok. Algunas findimplementaciones 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 -ooperadores).
En caso de duda, lo mejor es usar -printexplícitamente (o -exec printf '%s\0' {} +(o -print0cuando esté disponible) para que la salida pueda ser procesada posteriormente).
La -printacción predeterminada es especificada por POSIX. Algunas findimplementaciones antiguas requerían una explícita-print , pero por lo general no se encuentran en la actualidad.
También tenga en cuenta que algunas findimplementaciones 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 findimplementaciones también permiten pasar rutas de archivos como argumento a una -fopción como en:
find -f "$file1" -f "$file2" -print
Son las únicas findimplementaciones 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 $fileque no es el nombre de un findpredicado (u opción en el primer caso).
Desafortunadamente, eso tampoco es estándar ni portátil.