猫とパイプとリダイレクト

猫とパイプとリダイレクト

これら2つのコマンドの違いは何ですか?

cat /proc/uptime | awk '{print $1}'

< /proc/uptime awk '{print $1}'

具体的には、2番目のコマンドはどのように機能しますか?リダイレクト演算子に<コマンドを含める必要はありませんか?このようにファイルの内容をリダイレクトすることはどういう意味ですか?

答え1

通常foo < bar< bar foobashスクリプトでは同じです。シェルによって処理されるたびに、< filenameそれは関連コマンドの標準入力がこのファイルから出ることを意味します。追加のコマンドや手順は含まれません。シェル自体が行います。

Runはcat filename指定されたファイルの内容を読み取り、それを標準出力に書き込みます。|2つのコマンドの間は、左コマンドの標準出力を右コマンドの標準入力に接続することを意味します。

したがって、これら2つのコマンドはawkにコンテンツを送信するのと同じ効果がありますが/proc/uptime、最初の方法はcatこれを行うために追加のプロセスを開始します。

関連情報