コマンドの場合、-
を使用する場合 ファイル名の代わりに引数として使用すると、STDINまたはSTDOUTを意味します。
-
ただし、この例では、
-
という名前のファイルが作成されます。 :echo hello > -
-
を作成するにはどうすればよいですか この例では、STDOUTを意味しますか? -
逆に、どうすれば
-
を作成できますか-
という名前のファイルを意味します 次のような例では:cat -
承認された回答:
-
を使用する stdin / stdoutを意味するファイル名としては、多くのプログラムで使用される規則です。これは、ファイル名の特別なプロパティではありません。カーネルは-
を認識しません 特別なため、-
を参照するシステムコール ファイル名として-
を使用します 文字通りファイル名として。
bashリダイレクトを使用すると、-
は特別なファイル名として認識されないため、bashはそれをリテラルファイル名として使用します。
cat
の場合 文字列-
が表示されます ファイル名として、stdinの同義語として扱います。これを回避するには、cat
という文字列を変更する必要があります -
というファイルを参照しているように見えます 。これを行う通常の方法は、ファイル名の前にパス– ./-
を付けることです。 、または/home/Tim/-
。この手法は、コマンドラインオプションがファイル名と衝突する同様の問題を回避するためにも使用されるため、ファイルは./-e
と呼ばれます。 -e
として表示されません たとえば、プログラムへのコマンドラインオプション。