私はwatch
コマンドが好きですが、 その制限 があります。
watch
の機能をless
で模倣できるかどうか知りたいです。実行中のスクリプトによって動的に変更されるため、主にディレクトリをスクロールする機能を探しています。
less
では、F
と入力して、ファイルの最後から読み続けることができます(tail -f
など)。 :e
とファイル名を入力して別のファイルを表示できますが、残念ながら現在のファイルの名前を入力すると、less
はファイルを再ロードしません。ただし、 sabgenton :type :e
で提案されている現在のファイルを再読み取りするためのトリックがあり、存在しないファイルの名前を入力します;これにより、lessはエラーメッセージを表示し、現在のファイルを再ロードします。
watch ls
の代替品をお探しの場合は、次のようなものがあります。
auto-revert-mode
を使用すると、ファイルまたはディレクトリが5秒ごとに再ロードされます(遅延は構成可能です)。R
を押して、(ローカル)URLをリロードします。Shift+F less
をtailf
と同様にします。つまり、ファイルにさらにデータが追加されると、更新されます。
単にタイプ:
less +F filename
これは、エディター内で「F」を押すことをエミュレートします。
man
ページは非常に有益です。彼らに脅されないでください。とりわけ、man less
は、R
コマンドを使用して次のことができると述べています。
R Repaint the screen, discarding any buffered input. Useful if the file is changing while it is being viewed.
(この質問は6年以上前のものですが、Google検索で出てくるので、リンクをクリックしてここにたどり着いたのは私だけではありません。)
less
を実行しているときの「F」キーは、tail -f
と同様の「フォロー」を実行しますが、それがここで探しているものを達成するかどうかはわかりません。
私は通常タイプするだけです G 一度に出力をテールする。 CIFSのようなネットワークファイルシステムで特に役立ちます。
R
for repaintは常にファイルをリロードするとは限りません。[1]
常にファイルをリロードする回避策は、hq
を押すことです。これにより、ヘルプページが開き、終了します。ファイルを強制的に再読み込みするという副作用があります。
[1] R
が実行し、リロードしない状況の例をいくつか示します。
>
および>>
の変更:リロードされますsed -i
、gEdit、TextEdit:リロードしないでくださいvi
の変更:リロードされますvi
の変更:リロードしないでください違いは、iノードが変更されるかどうかにあると思います(ls -i foo.txt
で確認できます)。 iノードが変更された場合、R
は機能しません。
Vimを使用してファイルを読み取り、次のマッピングを.vimrc
ファイルに追加すると、ファイルを簡単にリロードできます ,r:
let mapleader = ","
nnoremap <leader>r :edit <CR>
ファイルをすでに編集している場合は、vimが文句を言うことに注意してください。に変えるだけ
let mapleader = ","
nnoremap <leader>r :edit! <CR>
変更を無視します。
代わりにそれをtail -f
にパイプすることもできますが、その場合は出力に従います。ただし、出力を移動(スクロール)する機能は失われます。
私はこのスレッドを他の人と同じように見つけました。すでにファイルの最後にいるときの解決策を追加したいと思います。「g」の後に「G」を付けると、ファイルが強制的に更新されます。
端末プログラム(SecureCRT)でこのためのマクロボタンを作成しました。マクロは単に「gG」です。
ブラウザの使用を嫌がらない場合は、次のコマンドで Algernon Webサーバーを起動できます。
algernon -a -t /directory/name
ファイルのリストが表示され、自動更新されます http:// localhost:3000 /