O comando find
é muito antigo, datando de Unix V5 . Na época, as convenções de sintaxe da linha de comando não estavam tão firmemente estabelecidas como estão agora. Alguns programas antigos se desviam dessas convenções.
Originalmente, find
não tinha opções. Esperava que o primeiro argumento fosse um diretório para percorrer e os argumentos restantes para ser uma expressão. Avaliar a expressão para cada arquivo indica se esse arquivo deve ser impresso (ou mais geralmente indica o que fazer com o arquivo). A expressão é feita de operadores e seus operandos. Encontrar operadores começam com -
(exceto por alguns símbolos de pontuação) pelo mesmo motivo, as opções começam com -
: porque ele não tem nenhum significado especial no shell, por isso é fácil de digitar, mas é diferenciável do arquivo nomes porque pessoas razoáveis não iniciam um nome de arquivo com -
.
Operadores não são opções. Por quê? Porque eles não têm a sintaxe das opções ... Eles têm a grafia das opções (começando com -
), mas eles são usados em um contexto diferente.
Mais tarde, find
adquiriu algumas coisas que poderiam ser consideradas opções - configurações globais como -depth
que realmente não têm nenhum negócio na expressão. Estes foram colocados na expressão para consistência, porque find
não tinha opções.
Ainda mais tarde, find
adquiriu algumas opções, com a sintaxe usual de opções: opções antes de não opções. Isso foi feito para ser consistente com muitos outros programas que suportam as mesmas opções ( -H
e -L
para configurar o comportamento do symlink).
A sinopse informa que -H
, -L
e similares podem vir primeiro, depois o (s) caminho (s) e, em seguida, a expressão. A sintaxe da sinopse nem sempre pode expressar todas as possibilidades. Se estivesse completo, seria ilegível, então tudo que você sabe é que isso dá uma possibilidade. Você precisa ler mais se quiser saber exatamente o que é possível e o que não é. Por exemplo, -H
, -L
, etc. podem chegar em qualquer ordem, desde que estejam antes do caminho.