ddがプロセス置換から入力を受け取るのが好きではないのはなぜですか?

ddがプロセス置換から入力を受け取るのが好きではないのはなぜですか?

プロセスの交換に関する内容はありますか(私の考えでは名前のないパイプを使用して実装dd)は?と互換性がありません。

たとえば、次は失敗します。

$ dd if=<(unzip -p raspbian.zip) of=/dev/sdb status=progress        
dd: unrecognized operand ‘/dev/fd/4’
Try 'dd --help' for more information.

しかし、これはうまくいきます。

$ unzip -p raspbian.zip | dd of=/dev/sdb status=progress       
108458496 bytes (108 MB) copied, 19.446285 s, 5.6 MB/s

暗黙的に話すif方法はありますか?dd追求できなければならない

答え1

これは、プロセス置換を拡張するときにシェルが先行スペースを追加するか、引数分割を実行することによって発生するようです。私達はこれを証明できます:

$ echo if=<(:)
if= /dev/fd/4

ddこの動作が最新バージョンで再現できると仮定すると、ここでバグレポートを送信する以外にできることはあまりありません(バグによって実際の問題が発生する正当なケースを含む)。

シェルの変更を検討することもできますが、気に入らないとわかります!

関連情報