chown:無効なオプション— 'i'詳細については 'chown --help'を試してください


15

次のコマンドに奇妙な問題があります。

# chown -R myuser:mygroup *
chown: invalid option -- 'i'
Try 'chown --help' for more information.

コマンドはエイリアスではありません

# type chown
chown is hashed (/bin/chown)

さらに調べることができますか?


1
あなたが試すことができますchown -R myuser:mygroup ./*
クリス

回答:


28

glob(パス名)展開は実行前にシェルによって最初に行われるためchown、globパターン*は最初に現在のディレクトリ内のすべてのファイルに展開され、chownそれらをオプションと引数として取得します。現在のディレクトリにで始まるファイルがある-iためchown、引数(ファイル名)としてではなくオプションとして考慮しています。

--のオプションの終わりを示すために使用する必要がありますchown

chown -R myuser:mygroup -- *

または、グロブパターン(*)の前に、./引数として明示的に示します。

chown -R myuser:mygroup ./*

./の接頭辞は、それが引数(ここではファイル名を意味する)であることを意味しませんが、拡張名はオプション(「-」で始まる)のように見えないことを意味します。シェルのような行を見たときchown -R myuser:mygroup ./*、それはに分割しchown-Rmyuser:mygroup./*その後、対応するファイルシステムのパス、例えばとglobパターンを置き換えます。chown-Rmyuser:mygroup./-index.html./favicon.ico./My -ve Numbers。chownはオプション引数を探すときにダッシュである最初の文字のみを探すので、それらは位置引数であると想定します。
ジム・ドリスコル

7

この問題は-index.php、フォルダ内で名前が付けられたファイルであったため、chownはそれをコマンドラインオプションとして解釈しました。

解決策はダブルハイフンを使用していました chown -R myuser:mygroup -- *


4
これは、すでに@heemaylによって与えられたのと同じ答えではありませんか?
クリス

3
@Kris両方の回答がほぼ同時に投稿されました;-)
Rinzwind

1
あなたの質問ではなく、あなたの答えでユーザーとグループ...難読化
トーマス・

3
@クリスそれが提起されてから39秒以内に他の答えをコピーした可能性はかなり低いです。
UTF-8

申し訳ありませんが、私はそのようなことを意味するつもりはありませんでした。
クリス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.