Назад | Перейти на главную страницу

Поиск, выбор и исключение каталогов

Я хотел бы изменить владельца всех файлов и каталогов, но исключить некоторые каталоги:

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