Я хотел бы изменить владельца всех файлов и каталогов, но исключить некоторые каталоги:
find -user test ! -path "./dir1/*" ! -path "./dir2/*" -exec chown -R root:root {} \;
Право собственности на исключенные каталоги все еще изменено?
С уважением
Попробуй это:
find . -user test | grep -v '^./dir1\|^./dir2'
чтобы проверить правильность списка и
find . -user test | grep -v '^./dir1\|^./dir2' | xargs chown root:root
сделать переименование.
find . \( -path ./dir1 -o -path ./dir2 \) -prune -o -user test -exec chown root:root {} \;
Лично я из соображений производительности предпочитаю:
find . \( -path ./dir1 -o -path ./dir2 \) -prune -o -user test -print0 | xargs -0 chown root
В Mac OS X вы можете использовать следующую версию команды, опубликованной Свеном:
find . | grep -v '^./@R*' | tr \\n \\0 | xargs -0 chown root:root