Я начал загружать большой файл в фоновом режиме, используя
$ nohup wget http://example.tld/big.iso &
который также дает мне nohup.out
файл, который включает в себя вывод wget
.
Теперь, если я позже захочу наблюдать за процессом загрузки, я мог бы использовать, $ tail -f nohup.out
но это заполняет окно моего терминала быстрее, чем я бы хотел. То, что я хотел бы видеть, - последняя строка, постоянно обновляющаяся (как при использовании в wget
одиночку).
Я пытался, $ tail -n 1 -f nohup.out
но, похоже, влияет только на начальный хвост.
Вообще говоря, если можно ограничить (в данном случае до 1) количество строк, доступных для вывода / просмотра команды, это решило бы эту проблему. Что-то вроде вывода в кольцевом буфере - просто подумайте, что $ wget example.tld/big.iso
будет отображаться обычный индикатор выполнения .
Есть ли такое решение?
Или я забираюсь на дерево неправильно? (Имеется в виду, будет ли проще ограничить nohup
вывод или сделать что-то еще?)
tail
процесс каждую секунду, который может или не может быть то, что вас волнует. Кроме того, обязательно укажите субсекундный интервал (напримерwatch -n 0.1
) для имитации «постоянно обновляемой» части. (Это, очевидно, увеличивает количество процессов и вызовов открытия файлов.) Наконец, если вы используете OS X, вы можете получитьwatch
от MacPorts, так как он не доступен по умолчанию.watch
в новом окне терминала. Я также обнаружил, что использованиеtail -n 2
более полезно, чем-n 1
сwget
, по крайней мере, сwatch
интервалом в 1 секунду, потому что в противном случае последний процент может быть не виден; это не недостаток в вашем ответе, но я упомянул об этом, если кто-то решит посмотреть вывод wgets noiled-nohup.tail
процесса, вероятно, не слишком излишне; но в качестве общего ответа это хорошо принять во внимание. Я также отметил, чтоwatch -n 0.1
это не работает, ноwatch -n 0,1
работает - могут быть применены локали, хотя я раньше не видел, чтобы локали применялись к опциям команды терминала. В качестве примечания: такжеbrew install watch
отлично работал :-)watch
будет ли работать с настройками локали0,1
или0.1
зависит от них (используется десятичный символ, определенный для вашей локали). ПроверьтеLC_ALL=C watch -n 0.1 "date +%S.%N"
.Существуют определенные управляющие последовательности Xterm, которые вы можете использовать для ограничения прокручиваемых линий вашего терминала. Ищите «Установить область прокрутки». Хотя это немного круто. После этого обязательно перезагрузите терминал:
источник
tail -f
прежнему заполняет буфер, а также потому, что терминал все равно требует перезагрузки. Это не так рядный , как я надеялся, но в противном случае это может быть то , что я искал.Если вы не хотите, чтобы вывод занимал все текущее окно терминала, вы можете использовать простой
while
цикл:источник
scrollTtyOutput
(или аналогичный) параметр.