Para ignorar um diretório, você deve usar -prune . Considere algo assim:
find . -name test -prune -o -type d -exec chmod 700 {} \; -o -type f -execdir chmod 600 {} +
Explicação:
-
-name test -prune:-prune, se os testes anteriores forem verdadeiros, e o arquivo atual for um diretório, pule-o, senão retorne false. -
-o -type d -exec chmod 700 {} \;: se-pruneretornar falso, essas opções serão aplicadas (como-oé OR) e isso se aplica achmod 700se o arquivo for um diretório. -
-o -type f -execdir chmod 600 {} +: se ambos os testes acima retornarem false, apliquechmod 600, pois não é um diretório.execdiré "um método muito mais seguro para invocar comandos", de acordo com a página de manual , que também dá as razões.