Linux 何时使用-在docker中键入d-exec chmod 750/640
我已经开始与Docker合作进行本地开发,从在mac上安装所有东西到容器。通过查看大量项目,我经常看到以下shell命令,尤其是Linux 何时使用-在docker中键入d-exec chmod 750/640,linux,bash,docker,devops,Linux,Bash,Docker,Devops,我已经开始与Docker合作进行本地开发,从在mac上安装所有东西到容器。通过查看大量项目,我经常看到以下shell命令,尤其是 find /www -type d -exec chmod 750 {} \; \ find /www -type f -exec chmod 640 {} \; 首先,他们试图实现什么,其次,这些命令实际上意味着什么,最后,为什么/什么时候需要使用这些命令 我最近复制并修改了另一个项目,发现拉出这些命令似乎没有什么区别(公平地说,它不再基于相同的基本容器……但仍然
find /www -type d -exec chmod 750 {} \; \
find /www -type f -exec chmod 640 {} \;
首先,他们试图实现什么,其次,这些命令实际上意味着什么,最后,为什么/什么时候需要使用这些命令
我最近复制并修改了另一个项目,发现拉出这些命令似乎没有什么区别(公平地说,它不再基于相同的基本容器……但仍然如此)
任何一点启示都将受到极大的赞赏
编辑:
这告诉我们:
内容:在/www
中查找所有文件夹并执行chmod命令,将权限更改为750
-仍然不确定750,更重要的是,您为什么要这样做。这些命令将所有文件和目录设置为所有者可读写,组可读,但任何人都不能执行这些文件 你可能想先读一读 在
/www
下查找所有文件,并将用户设置为具有r
ead、w
rite访问权限(6),将组设置为具有r
ead访问权限(4)。其他用户没有访问权限(0)
查找/www
下的所有目录,并将用户设置为对这些目录具有r
ead、w
rite和ex
ecute权限(7)以及组具有r
ead和ex
ecute权限(5)。其他用户没有权限(0)
\每次find
后,code>终止-exec
命令,并且在shell中运行时必须转义,因此它不会被解释为常规代码>这是shell命令的结尾。这也可以通过+
实现,因为它不需要转义和删除,因此更易于阅读。如果您在其他地方依赖stdout/stderr,那么效率可能会导致输出差异
这意味着用户可以更改目录并访问其中的文件。由于目录不能在可执行文件的意义上执行,因此执行位被重载以表示其他内容
也是一个很好的工具。这些命令将所有文件和目录设置为所有者可读写,组可读,但任何人都不能执行这些文件
你可能想先读一读
在/www
下查找所有文件,并将用户设置为具有r
ead、w
rite访问权限(6),将组设置为具有r
ead访问权限(4)。其他用户没有访问权限(0)
查找/www
下的所有目录,并将用户设置为对这些目录具有r
ead、w
rite和ex
ecute权限(7)以及组具有r
ead和ex
ecute权限(5)。其他用户没有权限(0)
\每次find
后,code>终止-exec
命令,并且在shell中运行时必须转义,因此它不会被解释为常规代码>这是shell命令的结尾。这也可以通过+
实现,因为它不需要转义和删除,因此更易于阅读。如果您在其他地方依赖stdout/stderr,那么效率可能会导致输出差异
这意味着用户可以更改目录并访问其中的文件。由于目录不能在可执行文件的意义上执行,因此执行位被重载以表示其他内容
这也是一个很好的工具。您是否阅读了find
和chmod
命令的文档?感谢您提供的精彩链接,解释shell将成为我的新好友。您是否阅读了find
和chmod
命令的文档?感谢您提供的精彩链接,解释shell将成为我的新好友。感谢您提供的精彩答案和精彩链接,非常感谢。-exec
的最后一个参数必须为+
或代码>--所以OP的原始代码中的分号不是shell指令,而是一个必要的参数。(+
表单的效率要高得多,它的行为类似于xargs
,因为它将尽可能多的参数组合到每个命令上)。感谢您提供了精彩的答案和链接,非常感谢。-exec
具有强制的最后一个参数+
或代码>--所以OP的原始代码中的分号不是shell指令,而是一个必要的参数。(+
表单更高效,其行为类似于xargs
,因为它将尽可能多的参数组合到每个命令上)。
find /www -type f -exec chmod 640 {} \;
find /www -type d -exec chmod 750 {} \;