tail -f tetapi isap isi file terlebih dahulu (alias `cat -f`)

9

Saya perlu untuk menampilkan seluruh file sebelum pelacakan itu untuk perubahan baru, tidak hanya 10 baris terakhir (yep, saya tahu itu tidak ekor konseptual). Dengan kata lain, sesuatu seperti cat -fakan dilakukan, jika itu pernah ada. Manusia Tail tidak memberiku ide. Satu-satunya pilihan yang saya lihat sekarang adalah entah bagaimana menggabungkan cat semua kecuali 10 baris terakhir dan keluaran tail -f .

Ada petunjuk, tolong?

om-nom-nom
sumber
3
cat $f && tail -n0 -f $fdatang ke pikiran, dan memeriksa halaman manual sepertinya tail -c0 -f $fjuga bisa melakukan apa yang Anda inginkan (dan lebih baik karena tidak menciptakan kondisi balapan antara dua proses di mana data yang ditulis dapat diabaikan). Saya tidak memiliki akses ke sistem Linux sekarang tetapi apakah salah satu dari mereka melakukan apa yang Anda inginkan?
CVn
Ini berguna dan saya baru saja menambahkan fitur seperti itu ke bahasa pemrograman: "tail stream" yang dapat membaca file secara normal dari awal hingga akhir, dan kemudian masuk ke mode "tail -f" di akhir, dan juga dapat melihat bahwa file diganti dengan yang lebih pendek atau terpotong, dan ikuti itu. Anda memerlukan ini untuk dapat melakukan hal-hal seperti memproses log yang ada (mengejar ketinggalan dengan backlog) dan kemudian mulai memproses entri baru.
Kaz

Jawaban:

14

Inilah satu cara untuk melakukannya:

tail -f -n+0 /var/log/messages

Tampaknya tidak ada perbedaan antara a +0dan a +1, jadi ini akan menjadi setara:

tail -f -n+1 /var/log/messages
slm
sumber
2
Bagian yang relevan dari halaman manual (simpan orang untuk mengetik) ... -n, --lines = K menampilkan baris K terakhir, bukan 10 terakhir; atau gunakan -n + K untuk menampilkan garis yang dimulai dengan Kth
dedgeed hedgehog