Как измерить или отследить ход выполнения команды в дистрибутиве GNU?
Если я бегу
cp file1 file2
Я хотел бы иметь возможность отслеживать его прогресс. Есть ли команда, которую я могу использовать для этого?
rsync --progress
имеет ли это, но есть ли что-то общее, пригодное для использования "любой" команды?
3 ответа
Ты можешь использовать pv
чтобы увидеть прогресс любой команды, которая может передавать данные по каналам.
Смотрите, например, http://www.catonmat.net/blog/unix-utilities-pipe-viewer/ для объяснений. Однако это не сработает для cp, так как не работает через каналы.
Помимо этого, нет общего механизма, о котором я знаю. Это было бы сложно, так как "прогресс" может означать разные вещи для разных команд.
КСТАТИ, cp
имеет возможность -v
который перечисляет файлы по мере их копирования, что может дать вам приблизительное представление о его прогрессе.
Редактировать:
Хотя это может не дать прямого ответа на ваш вопрос: вы также можете просто использовать графический файловый менеджер. Большинство из них предоставляют хороший индикатор выполнения при копировании / перемещении файлов (например, KDE konqueror).
Попробуйте добавить --verbose
Команды, которые вас интересуют, это, как правило, даст больше информации о прогрессе.
(Возможно, не совсем то, что вы спрашиваете, поскольку это не сработает ни для какой команды, но), чтобы получить индикатор прогресса для cp, я иногда (ab) использую scp:
scp localhost:/path/to/source_file /path/to/destination
Вам понадобится префикс localhost: в источнике или в месте назначения, чтобы scp не возвращался к стандартному cp.