将输出重定向到标准输出而不是文件

Sel*_*lim 2 bash io-redirection imagemagick

我正在编写一个java包装器convert(这是image magick的一部分)。我想要做的是调用一个命令,convert -thumbnail 1024 test.JPG >(cat)使其将缩略图字节流打印到标准输出。之后我想从这个流中读取并将其存储在 Blob 存储中。我在使用上面的命令时遇到困难,因为它看起来无法处理二进制数据。打印字节后,它还会打印类似的内容62;c62;c62;c62;c62;c62;c62;c62;c62;c62;c62;c62;c62;c62;c62;c62;c62;c62;c62;c62;c62;c62;c62;c62;c

我想避免写入临时文件,因为我不想处理任何目录权限。

我的命令做错了什么?是cat无法处理二进制数据还是其他原因?

Jef*_*ler 5

从命令行处理网页的输出文件名部分:

标准输出

Unix 允许一个命令的输出通过管道传输到另一个命令。ImageMagick 允许将一个命令通过管道传输到另一个文件名为 - 的命令。

在此示例中,我们将 Convert 的输出通过管道传输到显示程序:

magick logo: gif:- | display gif:-

然后你的命令行可以这样开始:

convert -thumbnail 1024 test.JPG - 
Run Code Online (Sandbox Code Playgroud)

...或选择转换为具有正确前缀的其他格式:

convert -thumbnail 1024 test.JPG png:-
Run Code Online (Sandbox Code Playgroud)

...此时您可以将该输出传送到您的 blob-store-reader:

convert -thumbnail 1024 test.JPG - | blob-store-reader
Run Code Online (Sandbox Code Playgroud)