我对以下命令有一个奇怪的问题:
# chown -R myuser:mygroup *
chown: invalid option -- 'i'
Try 'chown --help' for more information.
该命令不是别名
# type chown
chown is hashed (/bin/chown)
我可以在哪里进一步了解?
答案1
由于 shell 在运行之前首先进行 glob(路径名)扩展chown
,因此 glob 模式*
首先扩展到当前目录中的所有文件,并chown
获取这些文件作为其选项和参数。当前目录中有一个以 开头的文件-i
,因此chown
将其视为选项,而不是参数(文件名)。
您需要使用--
来指示选项的结束chown
:
chown -R myuser:mygroup -- *
或者在 glob 模式 ( *
) 前面加上 以./
明确指出它是参数:
chown -R myuser:mygroup ./*
答案2
问题在于-index.php
文件夹中的一个文件,因此 chown 将其解释为命令行选项。
解决方案是使用双连字符chown -R myuser:mygroup -- *