如何提高更改文件和文件夹权限的性能?

How to improve performance of changing files and folders permissions?

我将我的工作项目权限设置为:

我通过 运行 下一个命令来完成:

$ find /path/to/project -type d -exec chmod 0755 {};

$ find /path/to/project -type f -exec chmod 0644 {};

它工作正常,但有点,尤其是在虚拟机上。

我可以提高这个任务的性能吗?

参考 - [https://superuser.com/questions/91935/how-to-chmod-all-directories-except-files-recursively][1]

1.Most 这里消耗的时间将用于为每个条目加载 chmod 进程。为了避免使用 xargs-

     find /path/to/project -type d -print0 | xargs -0 chmod 755 
     find /path/to/project -type f -print0 | xargs -0 chmod 644

2.Fortunately,您可以选择不使用 find,这可以使速度更快。参考文献中的第二个答案 link 解释了如何根据您的需要编写 chmod 命令

你可以

find /path/to/project -type d -exec chmod 0755 {} +

这会将尽可能多的参数分组到 chmod

此外,考虑先使用 chmod -R,然后再接触目录。

可以直接使用命令chmod:

chmod -R a-x+X,u+rw,go+r-w /path/to/project

其中 a-x+X - 删除目录树中所有文件的执行权限(即递归),同时允许目录浏览。

构造a-x+X删除了任何文件和目录的所有(a,即用户,组和其他)的执行位(-x),然后添加它(+X) 到所有目录(还有可执行文件,但由于前面的 -x 而没有这样的文件存在)。 以类似的方式 go+r-w 添加读取权限 (+r) 并删除写入权限 (-w) 到组和其他 (go).