Saya ingin membaca seluruh file dan membuatnya menunggu input, sama seperti tail -f
tetapi dengan file lengkap ditampilkan.
Panjang file ini akan selalu berubah, karena ini adalah .log
file.
Bagaimana saya bisa melakukannya, jika saya tidak tahu panjang file?
command-line
tail
cacing gelang
sumber
sumber
less
memiliki kunci "F". Berguna jika Anda membutuhkan interaksi.Jawaban:
tail
memungkinkan Anda menambahkan-n
untuk menentukan jumlah garis untuk ditampilkan dari ujung, yang dapat digunakan bersamaan-f
. Jika argumen untuk-n
mulai dengan+
itu adalah jumlah baris dari awal (0
dan1
menampilkan seluruh file,2
menunjukkan lewati baris pertama, seperti yang ditunjukkan oleh @Ben). Jadi lakukan saja:Jika file log Anda diputar, Anda dapat menambahkan
--retry
(atau menggabungkan-f and --retry
ke dalam-F
seperti yang disarankan oleh @Hagen)Perhatikan juga bahwa di terminal grafis, Anda dapat menggunakan mouse dan PageUp/ PageDownuntuk menggulir kembali ke riwayat (dengan asumsi buffer Anda cukup besar), informasi ini tetap di sana bahkan jika Anda menggunakan Ctrl+ Cuntuk keluar
tail
. Jika Anda menggunakanless
ini jauh lebih mudah dan AFAIK Anda harus menggunakan keyboard untuk menggulir dan saya tidak tahu cara untuk mencegahless
deinitialising termcap jika Anda lupa untuk memulainya-X
.sumber
+
) diterapkan lebih efisien.+1
untuk mengajari saya tentang+0
. Anda mungkin ingin-F
alih-alih-f
memutar file logtail -n +1
menunjukkan awal file untuk saya, dantail -n +2
melompati satu baris. Saya pikir nomor tersebut adalah nomor baris dari baris yang ditampilkan pertama kali.Ada cara yang lebih baik untuk mencapai ini:
Ini akan menunjukkan kepada Anda seluruh file, memiliki kekuatan penuh
less
dan akan menunggu input baru. Jika Anda ingin berhenti menunggu input, dan membaca bagian tertentu, Anda dapat menghentikannya^C
dan melanjutkanF
.The
F
perintah selalu tersedia diless
, jika Anda memutuskan untuk melihat perubahan sementara memiliki file yang terbuka diless
, memukulF
akan menyalakannya. Terima kasih kepada hiergiltdiestfu dan wildcard untuk menunjukkannya.sumber
tail
. Terima kasih atas tipnya; Saya tidak akan pernah berpikirless
untuk menggunakan ini. Catatan untuk orang lain: Anda juga bisa menjalankanless <file>
dan kemudian mengetikF
.Selain jawaban / u / Anthon, Anda dapat melakukan sesuatu seperti:
Itu
-0
pilihan untuk ekor setara dengan-n 0
, yang berarti: dispaly 0 baris. Tetapi-f
akan menampilkan baris baru.Anda tidak membutuhkan kawat gigi
{ }
. Saya menggunakan mereka karena kadang-kadang Anda ingin mengarahkan para pendaftar dalam beberapa cara. Contohnya:Dicatat oleh Ben Milwood: Anda dapat memiliki kondisi balapan di mana file tumbuh antara akhir
cat
operasi dan awaltail
operasi. Tetapi sekali lagi, ini adalah masalah "akademis" untuk solusi akademis.sumber
cat
selesai dantail
mulai, Anda tidak akan melihat baris itu. Tidak mungkin menjadi masalah besar, tetapi alasan untuk memilihtail
solusi murni .{ cat; tail -n +0 -f; } < file
akan memperbaiki balapan, karena tail akan mencetak data baru yang muncul antaracat
's exit dantail
' s startup. Tentu saja, itu membuatcat
mubazir. Pengalihan hanya terjadi sekali, dantail
stdin adalah deskriptor file yangcat
sudah dibacakan ke EOF, sehingga posisinya saat ini adalah di manacat
dihentikan. Anda dapat mengujinya dengan meletakkan bagianecho foo >> file
dalam{}
, untuk membuat balapan setiap saat.watch
Perintah harus melakukan itu untuk Anda.Anda juga bisa mencoba
Anda akan memiliki lebih banyak opsi dengan
less
perintah untuk menggulir file Anda seperti yang Anda katakan itu file besar.sumber
+F
pilihan untuk