-print
jest domyślną akcją . Niektóre find
predykaty są traktowane jako działania w przeciwieństwie do filtrów lub warunków . Na przykład -type f
nie jest działaniem. -exec
jest działaniem, nawet jeśli może być również użyte jako warunek.
Działania obejmują -print
, -exec
i -ok
. Niektóre find
implementacje mają inne niestandardowe działania Podobnie jak predykaty -print0
, -printf
, -execdir
, -okdir
, -ls
...
find files <some-predicates>
Jeżeli żadne działanie<some-predicates>
zawierające nie jest równoważne z:
find files \( <some-predicates> \) -print
(zwróć uwagę na nawiasy powyżej, które są ważne, jeśli istnieją -o
operatory).
W razie wątpliwości najlepiej jest użyć -print
jawnie (lub -exec printf '%s\0' {} +
(lub -print0
jeśli są dostępne), aby dane wyjściowe mogły zostać przetworzone później).
Domyślną -print
akcję określa POSIX. Niektóre stare find
implementacje wymagały wyraźnego-print
, ale obecnie nie można ich znaleźć na wolności.
Zauważ również, że niektóre find
implementacje pozwalają na pominięcie files
, w którym to przypadku domyślnie przeszukują bieżący katalog. To dla nich
find
jest równa
find .
find . -print
Nie jest to jednak standardowe, więc najlepiej go unikać.
Na bardziej szczegółowym (i użytecznym) końcu spektrum niektóre find
implementacje pozwalają również na przekazywanie ścieżek plików jako argumentów do -f
opcji jak w:
find -f "$file1" -f "$file2" -print
Są to jedyne find
implementacje, które umożliwiają przekazywanie dowolnych ścieżek plików find
. Inne implementacje nie akceptują ścieżek plików takich jak !
lub -print
... więc find "$file" -print
(a nawet find -- "$file" -print
) zakłada, że $file
nie jest to nazwa find
predykatu (lub opcji w pierwszym przypadku).
Niestety to też nie jest standardowe ani przenośne.