¿Es incorrecta la sección de sinopsis de la página de manual del command de búsqueda?

Por lo tanto, he estado tratando de adquirir el hábito de mirar primero las páginas man antes de comenzar a googlear cuando olvido cómo ejecutar un determinado command.

Estuve mirando la página de manual para el command de búsqueda hoy y en la sección de sinopsis especifica el formatting del command como:

SYNOPSIS find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression] 

¿Esto no muestra que las opciones deben venir antes de la ruta y luego la expresión? ¿O una sinopsis no especifica el order?

Cuando uso find tengo que especificar la ruta antes de las opciones, así:

 find . -cmin -10 -ls 

-cmin y -ls son pnetworkingicados que son parte de la expresión , no de las opciones.

Tenga en count que puede marcar el final de las opciones con -- , pero los pnetworkingicados aún se permiten después.

Con GNU find , que permite omitir routes :

 find -- -L 

Se quejaría del pnetworkingicado -L desconocido (aunque -L es una opción válida que en realidad tiene un pnetworkingicado -follow equivalente).

Por eso, mientras

 find "$file" 

me gusta

 wc "$file" 

no funciona correctamente cuando $file comienza con - .

Hacer wc -- "$file" arregla para wc (excepto en el caso especial de file='-' ) pero no para find -- "$file" . FreeBSD find ha find -f "$file" para eso.

El command find es muy antiguo, se remonta a Unix V5 . En ese momento, las convenciones de syntax de la línea de command no estaban tan firmemente establecidas como lo están ahora. Algunos progtwigs antiguos se desvían de estas convenciones.

Originalmente, find no tenía opciones. Esperaba que el primer argumento fuera un directory para recorrer, y los arguments restantes para ser una expresión. La evaluación de la expresión de cada file indica si este file debe imprimirse (o más generalmente indica qué hacer con el file). La expresión está hecha de operadores y sus operandos. Los operadores Buscar comienzan con - (excepto algunos símbolos de puntuación) por el mismo motivo por el que comienzan las opciones - : porque no tiene ningún significado especial en el intérprete de commands por lo que es fácil de escribir, pero se distingue de los nombres de file porque las personas razonables no inicie un nombre de file con - .

Los operadores no son opciones. ¿Por qué? Porque no tienen la syntax de opciones … Tienen la ortografía de las opciones (que comienzan con - ) pero se usan en un context diferente.

Más tarde, find adquirió algunas cosas que podrían considerarse opciones: configuraciones globales como -depth que realmente no tienen ningún negocio en la expresión. Estos se pusieron en la expresión de coinheritance, porque find no tenía opciones.

Aún más tarde, find adquirió algunas opciones, con la syntax de opción habitual: opciones antes que las no-opciones. Esto se hizo para ser coherente con muchos otros progtwigs que admiten las mismas opciones ( -H y -L para configurar el comportamiento del enlace simbólico).

La sinopsis te dice que -H , -L y -L el estilo pueden venir primero, luego la (s) ruta (s), luego la expresión. La syntax sinóptica no siempre puede express todas las posibilidades. Si estuviera completo, sería ilegible, de modo que todo lo que sabes es que da una posibilidad. Necesita leer más si quiere saber exactamente qué es posible y qué no. Por ejemplo, -H , -L , etc. pueden venir en cualquier order, siempre que estén antes de la ruta.