マニュアルページリダイレクトの奇妙な動作

マニュアルページリダイレクトの奇妙な動作

mcマニュアルページをテキストファイルにリダイレクトしたかったのですが、man mc > mc誤ってそうしましたman mc > mc grep。結果は、mc2つのリンクされたmcマニュアルページを含むテキストファイルです。

その後、これを試み、端末にマニュアルページとエラーメッセージを含むテキストファイルが生成されman ls > 1 abcました。1lsNo manual entry for abc

次に私はそれを試しましたman du > du ls tac。 3つのリンクされたマニュアルページが予想されましたが、du実際の結果は、およびを含むduマニュアルページと呼ばれるテキストファイルですdulstac

各コマンドはなぜ結果を生成するのですか?

ベストアンサー1

これは Bash マニュアルの比較的曖昧なセクションと一致します。これはセクションの下で説明されています。シェル構文:

単純なコマンドは、一連のオプションの変数割り当てとスペースで区切られた単語で構成されています。そしてリダイレクト、制御演算子によって終了します。最初の単語は実行するコマンドを指定し、引数0に渡されます。残りの単語は、呼び出されたコマンドに引数として渡されます。

(強調します。)

これは、コマンドとそのパラメータとすべてのリダイレクトを「混合」できることを意味します。

例えば。echo > world helloecho hello > world

つまり、次のコマンドを実行すると、man du > du ls tac次のようになります。

man du ls tac > du

3つのマンページはすべて最終的に呼ばれるファイルにリンクされています。duこれは、出力がリダイレクトまたはパイプされたときの動作の結果ですman。ポケットベルを使用しようとしなくなり、デフォルトで動作しますcat

おすすめ記事