标准输出上的二进制输出有什么用?

标准输出上的二进制输出有什么用?

有些程序直接在 上打印二进制输出stdout。以下是一些示例:

tar -c file.png
dd  if=file.png

好吧,我知道输出可以重定向到文件。但这些程序已经接受输出文件名作为参数。因此,以下命令将产生相同的结果:

tar -c file.png  > file.tar
tar -c file.png -f file.tar

dd if=file.png  > copy.png
dd if=file.png of=copy.png

二进制输出还可以用于什么其他用途stdout

答案1

对于建筑管道,显然。最大的优点是您可以避免创建临时文件:

(对于此示例,假设旧版本tar没有-J-I压缩选项。)

tar -c foo/*.png | xz -9 | uuencode "foo.tar.xz" | mail -s "Sending foo" musa
  • 现在想象一下如果您必须使用-f等等......您将拥有 VMS。

    焦油-cffoo.tarfoo/*.png
    xz-9-ofoo.tar.xz foo.tar
    uuencode-ofoo.uue foo.tar.xz
    邮件-afoo.uue-s “发送 foo” musa
    R Mfoo.tar foo.tar.xz foo.uue
    

您可以通过网络执行管道:

ssh storageserver "cd ~/foo && tar -c bar" | pv | tar -x

curl https://example.com/secret.gpg | ssh mylaptop "gpg --decrypt" > secret.zip

更多示例:

curl http://i.imgur.com/L1aOt.jpg | display

有时你甚至不知道需要将其通过管道传输到任何地方,即使输出是“二进制”。在 Xterm 上尝试此操作:

curl http://www.dim13.org/tek/teapot.tek         # Utah teapot

答案2

目的可能因用户而异。开发人员可以使用该信息进行日志记录、进度跟踪甚至错误处理。

相关内容