-printé a ação padrão . Alguns findpredicados são considerados ações em oposição a filtros ou condições . Por exemplo, -type fnão é uma ação. -execé uma ação, embora também possa ser usada como uma condição.
As ações incluem -print, -exece -ok. Algumas findimplementaçõ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 -ooperadores).
Em caso de dúvida, o melhor é usar -printexplicitamente (ou -exec printf '%s\0' {} +(ou -print0quando disponível) para que a saída possa ser pós-processada).
A -printação padrão é especificada pelo POSIX. Algumas findimplementações antigas exigiam um explícito-print , mas elas geralmente não são encontradas na natureza atualmente.
Observe também que algumas findimplementaçõ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 findimplementações também permitem a passagem de caminhos de arquivos como argumento para uma -fopção como em:
find -f "$file1" -f "$file2" -print
Eles são as únicas findimplementaçõ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 $filenão é o nome de um findpredicado (ou opção no primeiro caso).
Infelizmente, isso também não é padrão nem portátil.