ファイル名の代わりにダッシュ(-)を使用してください。

ファイル名の代わりにダッシュ(-)を使用してください。

コマンドの場合、-ファイル名の代わりに引数として使用される場合、STDIN または STDOUT を表します。

  1. ただし、この例では次のファイルが生成されます-

    echo hello > -
    

    -この例では、STDOUTをどのように表現できますか?

  2. 代わりに、次のように例-で指定されたファイルをわかりやすくするにはどうすればよいですか?-

    cat -
    

ベストアンサー1

stdin / stdoutを表すためにファイル名を使用することは、-多くのプログラムで使用される規則です。これはファイル名の特別な属性ではありません。これはカーネルでは特別とは見なされないため、ファイル名を参照するすべてのシステムコールは-ファイル名を文字通り使用します。--

Bashリダイレクトを使用すると、-これは特殊ファイル名として認識されないため、Bashはそれをリテラルファイル名として使用します。

cat文字列がファイル名として扱われると、-stdinの同義語として扱われます。この問題を解決するには、cat表示される文字列がまだファイル名を参照するように変更する必要があります-。これを行う一般的な方法は、ファイル名の前にパスを追加することです./-/home/Tim/-この手法は、コマンドラインで同様の問題を解決するためにも使用されます。オプションがファイル名と競合します。たとえば、というファイルはプログラムのコマンドラインオプション./-eとして表示されません。-e


>& filename1 bashが最終的にcshからコピーしてstdoutとstderrをリダイレクトする演算子を除いて、>&-ファイル記述子はまだBourneシェルのように閉じられており、-引用または拡張されても結果は>&この演算子を任意のファイル名に使用できないことを意味しますします。標準/Bourne> "$file" 2>&1構文またはbash関連構文を使用してください&> "$file"

おすすめ記事