我想递归地更改所有文件和目录的权限,但排除某些目录。
find . -name user -prune -o -type d -exec chmod 755 {} \;
但使用这个,它只改变目录,而不是递归。目录的内容不会改变。
尽管,
find . -name user -prune -o -type d -exec chmod -R 755 {} \;
这将更改所有目录及其内容,并包括我要排除的“用户”目录。
那么,如何递归地更改所有文件和目录的权限但不包括用户目录呢?
提前致谢。
答案1
这可以通过 -path 参数来完成。
find . -path dir -prune -o -name user -type d -exec chmod -R 755 {} \;
如果您想忽略多个目录,您可以这样做。
find . \( -path dir1 -o -path dir2 -o -path dir3 \) -prune -o -name user -type d -exec chmod -R 755 {} \;