ログファイルの監視に「tail -f」コマンドを使っている方は多いかもしれません。ファイルの末尾を表示する「tail」コマンドに、ファイル末尾に追加されたデータを追跡表示する「-f」オプションを指定することで、手軽にログの監視ができる便利なコマンドです。
しかし最近、「tail -f」より便利なコマンドとして「less +F」の使用を推奨するブログ記事「Stop using tail -f (mostly)」が公開され話題となりました。
「less」はテキストファイルの内容を表示する、ページャーと呼ばれるソフトウェアですが、これに「+F」オプションを指定することで、「tail -f」より便利なファイル監視コマンドとして使えるらしいのです。具体的に「less +F」が「tail -f」より便利な点として以下の2点が挙げられています。
監視モードと通常モードをlessを起動したまま行き来できる
例えば「less +F README.md」を実行すると、以下のように監視モードでlessが起動します。
この状態で「Ctrl-c」を押すと通常モードに以降します。
通常モードで「F」を押すと再び監視モードに戻すこともできます。
これは何が嬉しいかというと、ファイル監視中に何か気になるデータを発見した場合「Ctrl-c」で素早く通常モードに移行し、「/」などの検索コマンドを駆使して気になるデータを表示、気が済んだら再び「F」で監視モードに戻るといったことが、lessを終わらせることなく可能だということです。
「tail -f」だとこうはいきません。
複数ファイルの監視もできる
例えば「less +F README.md LICENSE」で起動したとき、「Ctrl-c」で通常モードへ、「:n」で次のファイルへ移動し、「F」で監視モードに。といったことができます。
lessが複数のファイルを扱うことができるのでこんな芸当もできるんですね(ちなみに「:p」で前のファイルへ戻ります。詳しくはlessで複数ファイルを読むなどをどうぞ)。
まとめ
lessにこんな機能まで実装されていて驚きました。他にも、GNU Source-highlightと組み合わせると、ソースコードのハイライトも可能だったりしてかなり高機能です。more派の人もlessの機能をいろいろ試してみると新たな発見があるかもしれません。