「tail -f ... | tail」が出力を生成しないのはなぜですか?

「tail -f ... | tail」が出力を生成しないのはなぜですか?

次のコマンドが出力を生成しないのはなぜですか?

$ tail -f /etc/passwd | tail

について読んだ後バッファー、私は成功せずに次のことを試しました。

$ tail -f /etc/passwd | stdbuf -oL tail

以下は出力を生成します。

$ tail /etc/passwd | tail

これも本当です:

$ tail -f /etc/passwd | head

私はtailバージョン8.21(GNU coreutils)を使用しています。

ベストアンサー1

tail -f尾は実は現在としては知られていないのですが、tail次にはどうやって知ることができますか?一方、tail -fヘッダーは既知であるため処理できます。

あるいは、より簡単に言えば、tailファイルの終わりに基づいていますが、出力ストリームtail -fにEOFはありません(少なくとも終了する前ではありません)。

最初のpidを見つけてtail殺すと、次のことを行う必要があります。それから2番目の出力を参照してください。

おすすめ記事