find . \( -path ./dir1 -o -path ./dir2 \) -prune -o -user test -exec chown root:root {} \;
Pessoalmente, por motivos de desempenho, prefiro:
find . \( -path ./dir1 -o -path ./dir2 \) -prune -o -user test -print0 | xargs -0 chown root
Eu gostaria de alterar a propriedade de todos os arquivos e diretórios, mas excluir alguns diretórios:
find -user test ! -path "./dir1/*" ! -path "./dir2/*" -exec chown -R root:root {} \;
A propriedade dos diretórios excluídos ainda é alterada?
Atenciosamente
Tente isto:
find . -user test | grep -v '^./dir1\|^./dir2'
para verificar se a lista está correta e
find . -user test | grep -v '^./dir1\|^./dir2' | xargs chown root:root
para fazer a renomeação.