2016-12-10 3 views
1

Я хочу получить информацию о ходе выполнения команды diskutil, когда zerodisk на MacOS.Перенаправить динамический вывод терминала в файл

бегает ниже команд на терминале:

diskutil zerodisk disk2 

И выход со значением прогресса:

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

Но когда я Ouput результирующей строки в файл с помощью команды:

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

Перенаправление ввода-вывода в оболочке изменяет поведение многих приложений. Используйте script, чтобы захватить весь вывод на терминал без помех:

script 
diskutil zerodisk disk2 
exit 

Выход будет находиться в файле с именем typescript. Вы можете изменить это с помощью script command-line arguments, например,

script redirect.txt diskutil zerodisk disk2 

В результате redirect.txt будет содержать все символы, отправляемые на терминал, включая возврат каретки.

+0

Все сработало! Спасибо огромное! – DangNguyen

 Смежные вопросы

  • Нет связанных вопросов^_^