Na find(1)
manpage :
The
-H
,-L
and-P
options control the treatment of symbolic links. Command-line arguments following these are taken to be names of files or directories to be examined, up to the first argument that begins with-
, or the argument(
or!
. That argument and any following arguments are taken to be the expression describing what is to be searched for. If no paths are given, the current directory is used. If no expression is given, the expression-print0
instead, anyway).
O ponto inicial, /
no seu caso, não é processado da mesma forma que as expressões. Este último,
-o -group 'id -g' -perm \
-g=w -perm -u=s -o -perm -o=w\
-perm -u=s -o -perm -o=w \
-perm -g=s -ls
no seu caso, são aplicados a todos os arquivos encontrados no ponto inicial. -o
é um operador binário que requer expressões em ambos os lados, portanto, este comando falha:
find: invalid expression; you have used a binary operator '-o' with nothing before it.
Se você remover o primeiro -o
, ele será equivalente a
( -group 'id -g' -perm -g=w -perm -u=s )
-o ( -perm -o=w -perm -u=s )
-o ( -perm -o=w -perm -g=s -ls )
que lista apenas arquivos que são setgid e graváveis por outros. Os dois primeiros grupos de expressões não têm ação, então são aplicados, mas não têm nenhum efeito visível.