-print
è l' azione predefinita . Alcuni find
predicati sono considerati azioni anziché filtri o condizioni . Ad esempio, -type f
non è un'azione. -exec
è un'azione anche se può essere utilizzata anche come condizione.
Le azioni comprendono -print
, -exec
e -ok
. Alcune find
implementazioni hanno altri predicati di azione non-standard come il -print0
, -printf
, -execdir
, -okdir
, -ls
...
find files <some-predicates>
Dove nessuna delle azioni<some-predicates>
contiene equivale a:
find files \( <some-predicates> \) -print
(notare le parentesi sopra che sono importanti se ci sono alcuni -o
operatori).
In caso di dubbio, è meglio utilizzare -print
esplicitamente (o -exec printf '%s\0' {} +
(o -print0
dove disponibile) in modo che l'output possa essere post-elaborato).
L' -print
azione predefinita è specificata da POSIX. Alcune vecchie find
implementazioni richiedevano un esplicito-print
, ma quelle di solito non si trovano in natura al giorno d'oggi.
Si noti inoltre che alcune find
implementazioni consentono di omettere il files
, nel qual caso per impostazione predefinita cercano nella directory corrente. Cioè, per loro,
find
è equivalente a
find .
find . -print
Questo non è tuttavia standard, quindi è meglio evitarlo.
All'estremità più dettagliata (e utile) dello spettro, alcune find
implementazioni consentono anche di passare percorsi di file come argomento a -f
un'opzione come in:
find -f "$file1" -f "$file2" -print
Sono le uniche find
implementazioni che consentono il passaggio di percorsi di file arbitrari a find
. Altre implementazioni non possono accettare percorsi di file come !
o -print
... quindi find "$file" -print
(o anche find -- "$file" -print
) presuppone che $file
non sia il nome di un find
predicato (o opzione nel primo caso).
Sfortunatamente non è nemmeno standard né portatile.