我知道我应该分配一个组,然后设置一个umask,以便组可写权限保持不变,但无论出于何种原因,我都无法做到这一点。我需要递归chmod一个目录,除了一个子文件夹(web10),以下工作吗?
cd /var/www/clients/
find . -type f -not -path "*web10*" -exec chmod 777 '{}' \;
答案 0 :(得分:1)
如果要排除文件或目录,请使用-prune
find /var/www/clients/ -name web10 -type d -prune -o -type f -print0 | xargs -0 chmod 0640
您还应尽可能使用xargs
。使用-exec
,您可以为找到的每个文件调用一次命令,而xargs
会收集尽可能多的文件,并为N个文件调用一次命令,从而提高执行效率并提高性能。