chown: 无效选项 -- 'i' 试试 'chown --help' 了解更多信息

Mar*_*ala 16 command-line chown

我对以下命令有一个奇怪的问题:

# chown -R myuser:mygroup *
chown: invalid option -- 'i'
Try 'chown --help' for more information.
Run Code Online (Sandbox Code Playgroud)

命令不是别名

# type chown
chown is hashed (/bin/chown)
Run Code Online (Sandbox Code Playgroud)

我在哪里可以看得更远?

hee*_*ayl 31

由于 glob(路径名)扩展在chown运行之前首先由 shell 完成,因此 glob 模式*首先扩展到当前目录中的所有文件,并将这些文件chown作为其选项和参数。您在当前目录中有一个以 开头的文件-i,因此chown将其视为一个选项,而不是一个参数(文件名)。

您需要使用--来指示选项的结束chown

chown -R myuser:mygroup -- *
Run Code Online (Sandbox Code Playgroud)

或者在 glob 模式 ( *)之前./显式地将其指示为参数:

chown -R myuser:mygroup ./*
Run Code Online (Sandbox Code Playgroud)


Mar*_*ala 7

问题是文件-index.php夹中命名的文件,因此 chown 将其解释为命令行选项。

解决方案是使用双连字符 chown -R myuser:mygroup -- *

  • 这不是@heemayl 已经给出的相同答案吗? (4认同)
  • @Kris 两个答案几乎同时发布;-) (3认同)
  • @Kris 他不太可能在提出其他答案后的 39 秒内复制它。 (3认同)