タイトルの質問に。

タイトルの質問に。

次のメッセージを受け取りました。

$ time $(tee < infile > outfile)
real 0m14.721s
user 0m0.094s
sys 0m2.629s

$ time $(cat infile | tee > outfile)
real 0m8.931s
user 0m0.123s
sys 0m3.168

この違いは、リダイレクト/パイピングによるものですか、それとも別のものがありますか?

2番目に実行すると、次の結果が表示されます。

$ time $(tee < infile > outfile)
real 0m11.558
user 0m0.113s
sys 0m2.691s

$ time $(cat infile | tee > outfile)
real 0m8.822s
user 0m0.120s
sys 0m3.125s

PSinfileoutfileその両方はMP4ファイルであり、RAMにキャッシュされています。

ベストアンサー1

(事件によって克服された): これらの例はタイトルと同じではありません。

タイトルの質問に。

バージョンはcat少し遅くなります。



[編集者注:この回答の残りの部分は、スペルエラーを含む質問の以前のバージョンに基づいています。質問が編集され、次の内容は関連していません。 ]

本文の質問については

最初のコマンドは2つのファイルを書き込みます。そのため、速度が遅くなります。 2番目は追加プロセス(cat)を開始することですが、追加ファイルを作成するよりも少し遅くなります。

読み取りがキャッシュされるため、2 番目の実行が高速化される可能性があります。

説明する

tee < infile tee > outfile機能的には同じcat infile | tee tee > outfileですがtee > outfile。最初の 2 つは 2 つのファイルを生成し、3 番目は 1 つのファイルを生成するため、速度が速くなります。

おすすめ記事