「-」はコマンドの引数として何を意味しますか?


9

はワンステップでtgz開く方法に関するこのリンクを見つけました。

gzip -dc target.tar.gz | tar xf -

「-」はどういう意味ですか?


1
また、ほとんどのバージョンのtarは、gzipおよびbzipをネイティブでサポートするようになりました。gzip tar xfz target.tar.gztar xfj target.tar.bz2

回答:


18

-ファイル名の引数でstdinor を使用するのは一般的な規則stdoutです。tar同じ規則に従います。manページから:

   -f, --file [HOSTNAME:]F
          use archive file or device F (default "-", meaning stdin/stdout)

1
これは単なる慣例です。特定のコマンドのマンページを読んで、その-意味を確認する必要があります。Stdin / stdoutは、最も一般的な意味ですが、他にもあります。たとえば、一部のバージョンでenvは、「空の環境から始める」ことを意味します。
cjm

0

もう1つの規則は、フラグの終わりとファイル名の始まりを示すために「-」を使用することです。その動作は、少なくともRedHat 4のgetopt(3)に組み込まれています。引数の終わりを示すために「-」を使用するRed Hatのマニュアルページは見つかりません。それらはすべて「-」を使用してそうしているようです。awkのマニュアルページには、「-」が含まれているため、古い「heirloom」UnixまたはSolarisコマンドのみが「-」を引数として使用している-ファイル名の区切り文字。


3
--オプションの終わりを知らせるので、その後に来るものはすべてオペランドです。-それはオプションではないので、それとその後に来るすべてはオペランドです。これは標準的な動作です。などの多くのコマンドでtar、オペランド-は標準入力または標準出力を意味します。多くのシェルでset - -aは、と同等set -- -aであり、一部の古いBourneシェルset - -aは唯一受け入れられる形式でしたが、これはset組み込みの例外です。
Gilles「SO-邪悪なことをやめよう」

Solarisプログラムは、主にPOSIX標準規則に従って、--オプションを引数から分離します。
2011
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.