有没有对应于 x/X 的标志,但是对于 Linux 上带有 chmod 的 s?

0xC*_*22L 5 linux chmod

当使用chmod(在我的情况下是coreutils8.12 的一部分)并递归设置x位时,存在方便的X(大写字母 x),仅在目录上设置位。因此,如果您想x从所有文件中删除并且只将其保留在文件夹中,您可以将其压缩到这样的单个调用中:

chmod -R a-x,a+X /path/to/folder
Run Code Online (Sandbox Code Playgroud)

如果您与 unixoid 系统的概念起源于 1980 年代并且755他们只知道八进制的人一起工作,这将特别有用。

然而,我还没有发现这样的事情s,尽管事实上在文件和文件夹上存在类似的比特含义的二元性。我指的是chmod(1),特别是setgid行为。所以如果我这样做:

chmod -R g+ws /path/to/folder
Run Code Online (Sandbox Code Playgroud)

我最终得到的文件文件夹都设置了该位,而我只想将它设置在文件夹上,以便在那里创建的文件始终由拥有组自动拥有。

有没有方便的方法,缺少:

find /path/to/folder -type d -exec chmod g+s {} \;
Run Code Online (Sandbox Code Playgroud)

???

slm*_*slm 3

当您使用-R开关 to时chmod,您是说您希望将相关权限更改递归地应用于文件和文件夹。

没有办法告诉chmod您只将这些设置应用于其中一个,因此您唯一的办法就是寻求工具的帮助,例如find构建目录列表,然后有选择地针对此列表执行命令execchmod

chmod您可以通过exec像这样使用命令+的变体来调用它来提高效率exec

$ find /path/to/folder -type d -exec chmod g+s {} +
Run Code Online (Sandbox Code Playgroud)