Le opzioni `-name` e` -exec` o gli argomenti non-option di `find`?


0

Sono -namee -execopzioni o argomenti non-option find? Sembrano opzioni brevi e vengono chiamate espressioni, se non sbaglio. Per esempio,

find . -name "*.txt" -exec echo {} \;

1
Non sono opzioni, sono operandi.
don_crissti,

Vuoi dire "opzionale"? Qual è la differenza nella tua interpretazione?
Jeff Schaller

Risposte:


1

Il findcomando ha solo due opzioni a POSIX ( -H, -L), o cinque in GNU (anche -P, -Ddebug_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).


1

-name, -exec, -printEcc non sono un'opzione per il findprogramma 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 filenel comando rm fileche indica rmquale file eliminare).

La descrizione standard POSIX finddell'utilità chiama primari di questi operandi e questo è anche ciò che vengono chiamati sui sistemi BSD.

Nel findmanuale GNU , sono chiamati espressioni e sono divisi in gruppi a seconda del loro uso:

  • Test (ad es -name. -mtime)
  • Azioni (ad es -delete. -print)
  • Opzioni globali (ad es -maxdepth. -depth)
  • Opzioni di posizione (ad es. -follow)
  • Operatori (ad es -not. -and)

Lo standard POSIX findha solo due opzioni reali -He -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.


"Opzione" trova espressioni che funzionano come opzioni reali? È per questo che si chiamano opzioni?
Ben

Qual è la differenza tra opzioni globali e opzioni posizionali?
Ben

test e azioni sono espressioni valutabili come vere o false. Le opzioni di ricerca espressioni sono valutabili e, se sì, anche su vero o falso?
Ben
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.