我使用这个dd命令检查磁盘速度:
dd if=/dev/zero of=/path/file bs=1G count=1 oflag=direct它还给出了这样的东西:
1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1,1 GB, 1,0 GiB) copied, 8,52315 s, 126 MB/s现在我想将这个输出管道,不是dd正在写入的文件,而是一个单独的文件。
我试着添加
>> /tmp/foo或
| sudo tee /tmp/foodd命令,但这只会创建一个空文件。
发布于 2018-01-30 14:58:03
为了能够在另一个命令之前或之后在管道中插入dd,它的信息性消息被写入标准错误而不是标准输出。
的OpenBSD手册dd显式地提到了这一点(但是Ubuntu手册似乎忽略了这个事实,但在更完整的info页面中提到了):
完成后,
dd将完整和部分输入和输出块的数量和截断的输入记录显示到标准错误输出。
若要从命令重定向标准错误,请使用2>filename。若要将标准错误流附加到已存在的文件而不截断该文件,请使用2>>filename。
例如:
dd if=/dev/zero of=/path/file bs=1G count=1 oflag=direct 2>dd.txt请注意,在第一个示例(使用>>)中附加的输出与第二个示例中的截断输出(使用tee)混合使用。若要使用tee追加文件,请使用tee -a。
发布于 2018-01-30 14:52:09
dd输出实际上是打印到stderr而不是stdout
可以将stderr重定向到dd命令的文件,如下所示:
$ dd if=/dev/zero of=/path/file bs=1G count=1 oflag=direct 2>> /path/to/file
https://unix.stackexchange.com/questions/420692
复制相似问题