Quanto ao comando find
, você também pode adicionar mais comandos -exec
seguidos:
find . -name "*" -exec chgrp -v new_group '{}' \; -exec chmod -v 770 '{}' \;
Note que este comando é, em seu resultado, equivalente ao uso de
chgrp -v new_group file && chmod -v 770 file
em cada arquivo.
Todos os parâmetros de find
, como -name
, -exec
, -size
e assim por diante, são realmente testes : find
continuará a executá-los um por um desde que toda a cadeia tenha avaliado até true . Portanto, cada comando -exec
consecutivo é executado somente se os anteriores retornarem true (ou seja, 0
status de saída dos comandos). Mas find
também entende operadores lógicos como ou ( -o
) e não ( !
). Portanto, para usar uma cadeia de -exec
tests independentemente dos resultados anteriores, seria necessário usar algo assim:
find . -name "*" \( -exec chgrp -v new_group {} \; -o -exec chmod -v 770 {} \; \)