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

时间:2015-06-02 09:52:52

标签: linux ubuntu permissions find chmod

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

    所有目录
  • 755
  • 644 for all files

我是通过运行下一个命令来实现的:

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

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

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

我能否以其他任何方式提高此任务的效果?

3 个答案:

答案 0 :(得分:2)

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

1.此处消耗的大部分时间将用于为每个条目加载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.幸运的是,您可以选择不使用find,这可以使其更快。参考链接中的第二个答案解释了如何根据需要编写chmod命令

答案 1 :(得分:1)

你可以做到

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

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

另外,请先考虑使用chmod -R,然后再触摸目录。

答案 2 :(得分:1)

您可以直接使用命令chmod

Error: php54-cli conflicts with php-cli-5.3.3-40.el6_6.x86_64
Error: php54 conflicts with php-5.3.3-40.el6_6.x86_64
Error: php54-common conflicts with php-common-5.3.3-40.el6_6.x86_64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

其中chmod -R a-x+X,u+rw,go+r-w /path/to/project - 删除目录树中所有文件的执行权限(即递归),同时允许目录浏览。

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