回答:
-ファイル名の引数でstdinor を使用するのは一般的な規則stdoutです。tar同じ規則に従います。manページから:
-f, --file [HOSTNAME:]F
use archive file or device F (default "-", meaning stdin/stdout)
-意味を確認する必要があります。Stdin / stdoutは、最も一般的な意味ですが、他にもあります。たとえば、一部のバージョンでenvは、「空の環境から始める」ことを意味します。
もう1つの規則は、フラグの終わりとファイル名の始まりを示すために「-」を使用することです。その動作は、少なくともRedHat 4のgetopt(3)に組み込まれています。引数の終わりを示すために「-」を使用するRed Hatのマニュアルページは見つかりません。それらはすべて「-」を使用してそうしているようです。awkのマニュアルページには、「-」が含まれているため、古い「heirloom」UnixまたはSolarisコマンドのみが「-」を引数として使用している-ファイル名の区切り文字。
--オプションの終わりを知らせるので、その後に来るものはすべてオペランドです。-それはオプションではないので、それとその後に来るすべてはオペランドです。これは標準的な動作です。などの多くのコマンドでtarは、オペランド-は標準入力または標準出力を意味します。多くのシェルでset - -aは、と同等set -- -aであり、一部の古いBourneシェルset - -aは唯一受け入れられる形式でしたが、これはset組み込みの例外です。
--オプションを引数から分離します。
tar xfz target.tar.gztar xfj target.tar.bz2