it-swarm-id.com

Apakah ada cara untuk menyegarkan perintah yang kurang dinamis?

Saya suka perintah watch, tetapi ia memiliki keterbatasannya .

Saya ingin tahu apakah saya bisa meniru fungsionalitas watch dengan less. Saya terutama mencari kemampuan untuk menelusuri direktori saya karena secara dinamis akan dimodifikasi melalui skrip yang sedang berjalan.

146
Zaid

Di less, Anda dapat mengetik F untuk terus membaca di akhir file (seperti tail -f); Anda dapat mengetik :e dan nama file untuk melihat file yang berbeda, tetapi sayangnya, jika Anda memasukkan nama file saat ini, less tidak memuat ulang file. Namun ada trik untuk membuatnya membaca kembali file saat ini, disarankan oleh sabgenton : ketik :e dan masukkan nama file yang tidak ada ; yang menyebabkan kurang untuk menampilkan pesan kesalahan dan kemudian memuat kembali file saat ini.

Jika Anda mencari alternatif untuk watch ls, berikut ini beberapa:

  • Pengelola file modern (mis. Nautilus, Thunar, Konqueror, Dolphin, Finder) menyegarkan tampilan secara real time.
  • Emacs tidak memiliki penyegaran waktu-nyata, tetapi dengan auto-revert-mode, ini akan memuat ulang file atau direktori setiap 5 detik (penundaan dapat dikonfigurasi).
  • Meskipun w3m terutama merupakan browser web, w3m membuat direktori yang bisa dilewati dan penampil file teks. Tekan R untuk memuat ulang URL (lokal).

Shift+F akan membuat less mirip dengan tailf. Artinya, ini akan disegarkan jika lebih banyak data ditambahkan ke file.

68
balki

Cukup ketik:

less +F filename

Ini mengemulasi penekanan "F" di dalam editor.

44
jhclark

man halaman bisa sangat informatif. Jangan terintimidasi oleh mereka. Di antara semuanya, man less mengatakan Anda dapat menggunakan perintah R untuk:

   R      Repaint the screen, discarding any buffered input.  Useful if the file is changing while it is being viewed.

(Saya menyadari pertanyaan ini sudah berusia lebih dari 6 tahun, tetapi muncul di pencarian google, jadi saya bukan satu-satunya yang mengklik tautan untuk sampai ke sini.)

23
destenson

Tombol "F" saat menjalankan less akan melakukan "ikuti" yang mirip dengan tail -f, tapi saya tidak yakin apakah itu akan mencapai apa yang Anda cari di sini.

5
Dave Jennings

Saya biasanya mengetik G untuk mengekor output berdasarkan satu kali. Saya merasa sangat membantu melalui sistem file jaringan seperti CIFS.

5
jorb

R untuk pengecatan ulang tidak selalu memuat ulang file.[1]

Solusi yang selalu memuat ulang file adalah dengan menekan hq, yang akan membuka halaman Bantuan, lalu keluar. Ini memiliki efek samping dari memaksa file untuk memuat ulang.


[1] Berikut adalah beberapa contoh situasi yang R lakukan dan tidak dimuat ulang:

  • > dan >> perubahan: DO reloaded
  • sed -i, gEdit, TextEdit: JANGAN dimuat ulang
  • Di Linux, vi perubahan: DO reloaded
  • Di Mac, vi perubahan: JANGAN dimuat ulang

Saya percaya perbedaannya tergantung pada apakah perubahan inode (Anda dapat memeriksa dengan ls -i foo.txt). Jika inode berubah, maka R tidak akan berfungsi.

3
wisbucky

Anda dapat menggunakan vim untuk membaca file kemudian menambahkan pemetaan berikut ke file .vimrc Anda dan Anda dapat dengan mudah memuat ulang file dengan ,r:

let mapleader = ","
nnoremap <leader>r :edit <CR>

Catatan jika Anda sudah mengedit file, vim akan mengeluh. Ubah saja ke

let mapleader = ","
nnoremap <leader>r :edit! <CR>

Untuk mengabaikan perubahan.

1
puk

Anda bisa mengirimkannya ke tail -f sebagai gantinya, itu akan menghasilkan Anda mengikuti output. Anda akan kehilangan kemampuan untuk bergerak (gulir) melalui output Anda sekalipun.

0
Gert

Saya baru saja menemukan utas ini seperti orang lain. Saya ingin menambahkan solusi ketika Anda sudah berada di akhir file, menggunakan 'g' diikuti oleh 'G' akan memaksa penyegaran file.

Saya akhirnya membuat tombol makro untuk ini dalam program terminal saya (SecureCRT). Makro hanyalah 'gG'.

0
ZMitchell

Jika Anda tidak suka menggunakan browser, Anda dapat meluncurkan server web Algernon dengan perintah ini:

algernon -a -t /directory/name

Daftar file kemudian akan ditampilkan, dan di-refresh secara otomatis, di http: // localhost: 3000 /

0
Alexander