为了调试目的,我将项目中的所有内容设置为777
(rwxrwxrwx
),我想降低开放度并将根文件夹中的目录(而不是文件)设置为664
(rw-rw-r--
)。
为了做到这一点我使用了(来自如何使用 bash 命令列出文件夹?):
chmod 664 -- */
这按预期工作。然后我意识到我需要目录上的执行位才能进入它们。所以我尝试了:
chmod 764 -- */
但这引发了一个missing operand after "764"
错误。
我可以手动更改权限(chmod 764 <dir-name>
),并且目录并不多,所以这不是一个大问题,但我想了解一下。
为什么我不能用 将chmod 764 */
我当前路径中的目录设置为rwxrw-r--
?
答案1
如果你已经设置了 shell glob 选项,那么这将是有意义的
*
包括以 开头的名称.
,以及- 不匹配任何内容的通配符会消失,而不是保留其本身。(例如,如果您没有任何名称以 开头的文件
foo
,则该命令echo foo*
会打印一个空白行,而不是foo*
逐字打印。)
如果以上情况属实,则第一个命令设置为模式 664,这意味着您在发出第二个命令时.
没有读取权限。因此无法展开,并变为。.
*/
chmod 764 -- */
chmod 764 --