mc
マニュアルページをテキストファイルにリダイレクトしたかったのですが、man mc > mc
誤ってそうしましたman mc > mc grep
。結果は、mc
2つのリンクされたmc
マニュアルページを含むテキストファイルです。
その後、これを試み、端末にマニュアルページとエラーメッセージを含むテキストファイルが生成されman ls > 1 abc
ました。1
ls
No manual entry for abc
次に私はそれを試しましたman du > du ls tac
。 3つのリンクされたマニュアルページが予想されましたが、du
実際の結果は、およびを含むdu
マニュアルページと呼ばれるテキストファイルですdu
ls
tac
。
各コマンドはなぜ結果を生成するのですか?
ベストアンサー1
これは Bash マニュアルの比較的曖昧なセクションと一致します。これはセクションの下で説明されています。シェル構文:
単純なコマンドは、一連のオプションの変数割り当てとスペースで区切られた単語で構成されています。そしてリダイレクト、制御演算子によって終了します。最初の単語は実行するコマンドを指定し、引数0に渡されます。残りの単語は、呼び出されたコマンドに引数として渡されます。
(強調します。)
これは、コマンドとそのパラメータとすべてのリダイレクトを「混合」できることを意味します。
例えば。echo > world hello
echo hello > world
つまり、次のコマンドを実行すると、man du > du ls tac
次のようになります。
man du ls tac > du
3つのマンページはすべて最終的に呼ばれるファイルにリンクされています。du
これは、出力がリダイレクトまたはパイプされたときの動作の結果ですman
。ポケットベルを使用しようとしなくなり、デフォルトで動作しますcat
。