次のコンテンツをクロールするとしましょう。とても大きいファイルですが、一度に複数の部分を見たいです。次のことを行うとしましょう。
$ cat /dev/sda1 | less
JavaやActionScriptなどの言語を使用するプログラマーとして、このコードを見ると、Bashが最初にコマンドを実行する様子を想像していますcat /dev/sda1
。すべてコマンドをRAMに保存してから、表示されるless
非常に大きな「ダミー変数」にアクセスできるコマンドを実行します-
。
これがBashが何をするのか(つまり、特に悪いファイルがシステムのRAM容量より大きい場合は、別のコマンドを使用する必要があると思いますか?または、大容量データに合わせてパイプラインを最適化する方法はありますか?
ベストアンサー1
いいえ、すべてをメモリにロードするわけではなく、設計には非現実的な方法です。バッファを使用してパイプの左側の出力をバッファリングし、これらのバッファをパイプの右側のコマンド入力に接続します。
マニュアルページには、man 7 pipe
次のタイトルのその他のU&L Q&Aだけでなく、すべての詳細が含まれています。パイプバッファはどれくらい大きいですか?