CentOSからUbuntuにサーバー引越して、いろいろ違いがあった場合その都度対策している。今回は特に困っているわけでは無いが、コマンドラインツールのlessについて、lessはテキストファイルの内容をページ送りで閲覧することが出来るビュアーで間違って編集してしまわない安心感とお手軽さで昔から常用しているツールだ。
大昔は無かったと思うが、CentOSで運用しているとき。ファイル名の代わりに間違ってディレクトリ名を渡してしまった時。エラーでなく、そのディレクトリのファイル名一覧(ls -la の結果)が表示されるようになっていた。これが以外に便利で、ファイルがメチャメチャ入っているディレクトリとかザーッと眺めるのに丁度良い機能だった。
とは言ってもそんなに使う事もないので、忘れたまま先日のサーバー引越&OS変更(CentOS→Ubuntu)を行なった後に、lessを使うとディレクトリ一覧機能が無くなっていた。CentOSのマシンもまだ生きているので改めて試してみるとこちらは引数にディレクトリを与えることで、ファイルの一覧が出来ていた。ディストリビューションごとの機能の違いなようだがlessなんていうレガシーがツールに今更機能の差があるのは考えにくいので、設定関係で調査してみた。
どうやら、lessには前処理を行なうlesspipe(.sh)というシェルスクリプトがあり、ここで圧縮ファイルの展開などを行なっていたようだ。
/usr/bin/lesspipe(.sh)
CentOSとUbuntuでこれらのファイルを比較したところ、CentOSの方には下記のような引数がディレクトリだった場合の処理が入っている。
if [ -d "$1" ] ; then
ls -alF -- "$1"
exit $?
fi
これをUbuntuの方にも記載することで、無事ディレクトリリストを閲覧することが出来るようになった。
/usr/bin/lesspipeを直接編集してしまったので、今後アップデートで元に戻ってしまった時のことを考えての覚え書き・・・・とφ(`д´)メモメモ…