将终端动态输出重定向到文件

时间:2016-12-10 09:55:49

标签: redirect terminal pipe

我想在MacOS上的zerodisk上获取 diskutil 命令的进程进度值。

我在终端上运行以下命令:

    diskutil zerodisk disk2

并输出进度值:

    Started erase on disk2
    [ - 0%..10%......................................... ] 15%
    ...

但是当我通过命令输出结果字符串时:

    diskutil zerodisk disk2 > output.txt

文件ouput.txt的内容没有进度值:

    Started erase on disk2
    Finished erase on disk2

有人可以告诉我为什么吗?有没有办法获得擦除进度值?

1 个答案:

答案 0 :(得分:0)

在shell上重定向I / O会修改许多应用程序的行为。使用script捕获终端的所有输出而不会产生干扰:

script
diskutil zerodisk disk2
exit

输出将位于名为typescript的文件中。您可以使用script command-line arguments更改,例如,

script redirect.txt diskutil zerodisk disk2

生成的redirect.txt将包含发送到终端的所有字符,包括回车。