查找、更改和排除目录

查找、更改和排除目录

我想更改所有文件和目录的所有权,但排除一些目录:

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

相关内容