
Я наткнулся на идею праймериз, занимаясь бегом man find
:
.
.
.
PRIMARIES
All primaries which take a numeric argument allow the number to be preceded by a plus sign (``+'') or a minus sign (``-''). A preceding plus sign means ``more than n'', a pre-
ceding minus sign means ``less than n'' and neither means ``exactly n''.
.
.
-depth n
True if the depth of the file relative to the starting point of the traversal is n.
Идет поискДокументация POSIXдля «праймериз» не дал никаких результатов.
Если немного разобраться, то становится ясно, что основные аргументы отличаются от переключателей и флагов, поскольку они располагаются после переключателей, флагов и основных аргументов:
$ find -depth 1 .
find: illegal option -- e
usage: find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]
$ find . -depth 1
./.DS_Store
./.vagrant
./foo
./some
Мне любопытно:
- Что такое праймериз?
- Есть ли какая-либо документация, которую я могу о них прочитать?
- Чем они отличаются от переключателей и флагов?
решение1
Это условия/действия find
языка , те, из которых в основном состоит «выражение», упомянутое в строке использования: -name
, -type
, -print
, -exec
и т. д. Этот термин используется для их отделения от операторов, которые объединяют только основные операторы: !
, -a
, -o
и скобки.
Я не помню, чтобы этот термин использовался в других контекстах, кроме find
. Он используется вСпецификация POSIX дляfind
и вСтраница руководства FreeBSD. GNU выделяется и в этом, документация для GNU find (например, страница руководства) не использует этот термин, но вместо этого делит праймериз натестыо свойствах файлов,действиякоторые что-то делают, ипараметрыкоторые влияют на то, как find
работает само по себе. Деление кажется полезным, но оно немного неточно, поскольку все основные элементы возвращают истинное значение, даже действия.