ファイルコマンドでパイプが機能しないのはなぜですか?

ファイルコマンドでパイプが機能しないのはなぜですか?

which cp|fileコマンドで印刷が見つかりましたfile。誰かが理由を説明できますか?

もちろん、私はコマンドがfile $(which cp)動作することを知っています。

答え1

このfileコマンドはの入力を許可しませんstdin。あなたは次のことをする必要がありますwhich cp | xargs file

答え2

まず、FIFO、シンボリックリンクなどと命名されたターゲットブロックデバイスを識別fileできると予想されます。stat()

ターゲットが通常のファイルである場合(または使用されている場合)、マジックファイルで指定されたオフセットでテストを実行できる-sと予想します。seek()

通常のストリームの場合、これは不可能ですstdin

関連情報