-print
é a ação padrão . Alguns find
predicados são considerados ações em oposição a 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 find
implementações ter outros predicados de ação não-padrão como o -print0
, -printf
, -execdir
, -okdir
, -ls
...
find files <some-predicates>
Onde nenhuma das ações<some-predicates>
contidas é equivalente a:
find files \( <some-predicates> \) -print
(observe os parênteses acima, que são importantes se houver alguns -o
operadores).
Em caso de dúvida, o melhor é usar -print
explicitamente (ou -exec printf '%s\0' {} +
(ou -print0
quando disponível) para que a saída possa ser pós-processada).
A -print
ação padrão é especificada pelo POSIX. Algumas find
implementações antigas exigiam um explícito-print
, mas elas geralmente não são encontradas na natureza atualmente.
Observe também que algumas find
implementações permitem omitir o files
, nesse caso, elas padronizam a pesquisa no diretório atual. Ou seja, para eles,
find
é equivalente a
find .
find . -print
No entanto, isso não é padrão, por isso é melhor evitar.
No final mais detalhado (e útil) do espectro, algumas find
implementações também permitem a passagem de caminhos de arquivos como argumento para uma -f
opção como em:
find -f "$file1" -f "$file2" -print
Eles são as únicas find
implementações que permitem a passagem de caminhos de arquivos arbitrários para find
. Outras implementações não podem aceitar caminhos de arquivo como !
ou -print
... então find "$file" -print
(ou mesmo find -- "$file" -print
) assume que $file
não é o nome de um find
predicado (ou opção no primeiro caso).
Infelizmente, isso também não é padrão nem portátil.