我想更改所有文件和目录的所有权,但排除一些目录:
find -user test ! -path "./dir1/*" ! -path "./dir2/*" -exec chown -R root:root {} \;
排除目录的所有权仍然改变吗?
问候
答案1
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
答案2
尝试这个:
find . -user test | grep -v '^./dir1\|^./dir2'
检查列表是否正确,
find . -user test | grep -v '^./dir1\|^./dir2' | xargs chown root:root
进行重命名。
答案3
在 Mac OS X 上,您可以使用 Sven 发布的以下版本的命令:
find . | grep -v '^./@R*' | tr \\n \\0 | xargs -0 chown root:root