2016-12-10 51 views
1

我想在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 

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

+0

它是否写入STDERR?试试'diskutil zerodisk disk2> output.txt 2>&1'。我认为对于像这样的进度条,它可能“退格”整条线,然后重新绘制它。所以,这是写作,然后擦除,然后写作,然后擦除... – varlogtim

回答

0

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

script 
diskutil zerodisk disk2 
exit 

输出将在一个名为typescript文件。可以更改使用script command-line arguments,例如,

script redirect.txt diskutil zerodisk disk2 

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

+0

它的工作!非常感谢! – DangNguyen