-print
é a ação padrão . Alguns predicados find
são considerados ações ao contrário de filtros ou condições . Por exemplo, -type f
não é uma ação. -exec
é uma ação, embora também possa ser usada como uma condição.
As ações incluem -print
, -exec
e -ok
. Algumas implementações com find
têm outros predicados de ação não padrão, como -print0
, -printf
, -execdir
, -okdir
, -ls
...
find files <some-predicates>
Onde nenhum <some-predicates>
contém ações é equivalente a:
find files \( <some-predicates> \) -print
(observe os parênteses acima, que são importantes se houver alguns operadores -o
).
Em caso de dúvida, o melhor é usar -print
explicitamente (ou -exec printf '%s-print0
' {} +
(ou -print
, quando disponível) para que a saída possa ser pós-processada).
A ação find
padrão é especificada por POSIX. Algumas implementações -print
antigas exigiam um find
explícito , mas geralmente não são encontrado na natureza hoje em dia.
Observe também que algumas implementações de files
permitem omitir o find
e, nesse caso, o padrão é pesquisar no diretório atual. Isto é, para eles,
find
é equivalente a
find .
find . -print
Isso não é padrão, por isso é melhor evitar.
No final mais detalhado (e útil) do espectro, algumas implementações de -f
também permitem passar caminhos de arquivo como argumento para uma opção find
como em:
find -f "$file1" -f "$file2" -print
Eles são as únicas implementações find
que permitem a passagem de caminhos de arquivos arbitrários para !
. Outras implementações não podem aceitar caminhos de arquivo como -print
ou find "$file" -print
... então find -- "$file" -print
(ou mesmo $file
) assume find
não é o nome de um predicado %code% (ou opção no primeiro caso) .
Infelizmente, isso também não é padrão nem portátil.