我将我的工作项目权限系列设置为:
我是通过运行下一个命令来实现的:
$ find /path/to/project -type d -exec chmod 0755 {};
$ find /path/to/project -type f -exec chmod 0644 {};
它工作正常,但有点慢慢,尤其是在虚拟机上。
我能否以其他任何方式提高此任务的效果?
答案 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
)。