Linux/Unixコマンドラインで「--」とはどういう意味ですか? [コピー]

Linux/Unixコマンドラインで「--」とはどういう意味ですか? [コピー]

重複の可能性:
"--"(二重ダッシュ) とはどういう意味ですか?

git diff [options] [<commit>] [--] [<path>…]

ここで[--]の意味をどのように理解するのですか?そして、いつ使うべきですか?

答え1

通常、--オプションの終わりを示すためにコマンドに使用されます。これは、ファイル名が「-」で始まる場合や入力内容がわからない場合に便利です。以下はその使用例です:

git diff --stat -- --file1 --file2

--file1他のオプションではなくファイル名として扱われます。

答え2

いつものように、コマンドのマンページを読んで、コマンドが引数を解釈する方法を理解する必要があります。

--通常、コマンドオプションの終わりを示すために使用されます。-。または、他のパラメータで始まるファイル名を渡したい場合に特に便利です。ハイフンで始まるファイル名に拡張できるワイルドカードの前に使用するのも良い考えです。 (たとえば、これを試してくださいmkdir foo; cd foo; echo >-l; ls *; ls -- *。)

ただし、git diff引数が a <commit>(比較するリビジョンを表す) か a <path>(比較するファイルを表す) かを示すためにも使用されます。通常は推測できますが、値は有効なコミットであり、有効なパスである可能性があります。この場合を使用して、git diff foo --これがfooコミットであることを示すか、パスであることをgit diff -- foo示します。foo

関連情報