Sono -name
e -exec
opzioni o argomenti non-option find
? Sembrano opzioni brevi e vengono chiamate espressioni, se non sbaglio. Per esempio,
find . -name "*.txt" -exec echo {} \;
Sono -name
e -exec
opzioni o argomenti non-option find
? Sembrano opzioni brevi e vengono chiamate espressioni, se non sbaglio. Per esempio,
find . -name "*.txt" -exec echo {} \;
Risposte:
Il find
comando ha solo due opzioni a POSIX ( -H
, -L
), o cinque in GNU (anche -P
, -D
debug_opt
, -O#
). Tutti gli altri argomenti non sono opzioni e quindi sono argomenti non di opzione.
In particolare, le opzioni per find
precedono i percorsi, mentre tutti trovano espressioni dovrebbero seguirli: find [option...] path... [expression...]
. (GNU find ha alcune primarie aggiuntive che a volte chiama anche "opzioni", come -maxdepth
; non sono opzioni vere, che appaiono all'interno della parte dell'espressione, ma suppongo che i messaggi di avviso siano più comprensibili se li chiamano in quel modo).
-name
, -exec
, -print
Ecc non sono un'opzione per il find
programma di utilità, ma operandi . Un operando è
Argomento di un comando che viene generalmente utilizzato come oggetto che fornisce informazioni a un'utilità necessaria per completare l'elaborazione. Gli operandi generalmente seguono le opzioni in una riga di comando.
(dalle definizioni POSIX ), ovvero una non opzione che dice all'utilità cosa fare (come file
nel comando rm file
che indica rm
quale file eliminare).
La descrizione standard POSIX find
dell'utilità chiama primari di questi operandi e questo è anche ciò che vengono chiamati sui sistemi BSD.
Nel find
manuale GNU , sono chiamati espressioni e sono divisi in gruppi a seconda del loro uso:
-name
. -mtime
)-delete
. -print
)-maxdepth
. -depth
)-follow
)-not
. -and
)Lo standard POSIX find
ha solo due opzioni reali -H
e -L
. Ciò ha a che fare con il modo in cui devono essere gestiti i collegamenti simbolici.
Lo standard POSIX non definisce alcuna opzione multi-carattere o "opzione lunga" per nessuna utility. Ciò non preclude tuttavia che le implementazioni aggiungano opzioni lunghe e le utility GNU in particolare sono ben note per l'aggiunta di opzioni espressive lunghe per funzionalità di convenienza estese.