Saya mulai mengunduh file besar di latar belakang menggunakan
$ nohup wget http://example.tld/big.iso &
yang juga memberi saya nohup.out
file yang mencakup keluaran dari wget
.
Sekarang, jika nanti saya ingin menonton proses pengunduhan, saya bisa menggunakan $ tail -f nohup.out
tetapi itu mengisi jendela terminal saya lebih cepat dari yang saya harapkan. Yang ingin saya lihat adalah baris terakhir yang terus diperbarui (seperti saat menggunakan wget
sendiri).
Saya mencoba $ tail -n 1 -f nohup.out
tetapi tampaknya hanya mempengaruhi awal tailin '.
Secara umum, jika dimungkinkan untuk membatasi (dalam hal ini ke 1) jumlah baris yang tersedia / terlihat oleh perintah akan menyelesaikan masalah ini. Semacam memiliki output dalam buffer Circular - pikirkan saja progress bar normal yang $ wget example.tld/big.iso
akan dicetak.
Apakah ada solusi seperti itu?
Atau apakah saya salah memanjat pohon? (Artinya, apakah akan lebih mudah membatasi nohup
output atau melakukan sesuatu yang lain?)
tail
proses baru setiap detik, yang mungkin atau mungkin bukan sesuatu yang Anda pedulikan. Juga, pastikan untuk menentukan interval sub-detik (mis.watch -n 0.1
) Untuk mensimulasikan bagian "terus-menerus memperbarui". (Ini jelas meningkatkan jumlah proses dan mengajukan panggilan terbuka juga.) Akhirnya, jika Anda menggunakan OS X, Anda bisa dapatkanwatch
dari MacPorts, karena tidak tersedia secara default.watch
jendela terminal baru. Saya juga menemukan bahwa menggunakantail -n 2
lebih bermanfaat daripada-n 1
denganwget
, setidaknya denganwatch
interval 1 detik, karena jika tidak persentase terbaru mungkin tidak terlihat; ini bukan cacat dalam jawaban Anda, tapi saya sebutkan jika orang lain memutuskan untuk menonton woh tailed nohup output.tail
proses baru mungkin tidak berlebihan; tetapi sebagai jawaban umum ini bagus untuk diperhitungkan. Saya juga mencatat bahwawatch -n 0.1
tidak berfungsi, tetapiwatch -n 0,1
berhasil - mungkin ada lokal yang diterapkan, meskipun saya belum melihat lokal diterapkan pada opsi perintah terminal sebelumnya. Sebagai catatan:brew install watch
bekerja dengan sangat baik :-)watch
akan berfungsi0,1
atau0.1
tergantung pada pengaturan lokal Anda (menggunakan simbol desimal yang ditentukan untuk lokal Anda). PeriksaLC_ALL=C watch -n 0.1 "date +%S.%N"
.Ada urutan kontrol Xterm tertentu yang dapat Anda gunakan untuk membatasi garis terminal Anda yang digulir. Cari "Set Scrolling Region". Tapi ini sedikit omong kosong. Pastikan untuk mereset terminal Anda setelahnya:
sumber
tail -f
masih mengisi buffer dan juga karena terminal perlu diatur ulang setelahnya. Ini tidak sejajar seperti yang saya harapkan, tetapi sebaliknya mungkin itu yang saya cari.Jika Anda tidak ingin output menempati seluruh jendela terminal saat ini, Anda dapat menggunakan
while
loop sederhana :sumber
scrollTtyOutput
(atau serupa) pilihan.