有没有关于流程替换的事情(我认为是使用无名管道实现)与 不兼容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
这似乎是由于您的 shell 在扩展进程替换时添加前导空格(或以其他方式执行参数分割)引起的。我们可以证明这一点:
$ echo if=<(:)
if= /dev/fd/4
dd
假设这种行为可以在您可以获得的最新版本上重现,我认为除了提交错误报告(包括证明该错误导致真正问题的合理情况)之外,您在此处无能为力。
您可能会考虑更换 shell,但如果您不喜欢这,我可以理解!