lessからtarで展開

うっかりサブディレクトリを掘ってくれないtar.{gz,bz2}なアーカイブを展開すると、カレントディレクトリにファイルらがどわーっと展開されてイヤなので、いつもlessでアーカイブを覗いて*1確認してからtarで展開してる。
で、たいていのアーカイブはそのまま展開してOKなので、less終了?tar -zxf ...tar.gz するよりlessから直接展開できるとタイプ数が少なくて便利だなぁと思いちと調べてみる。
lessには任意のshellコマンドを実行できる機能と任意のactionをキーに割り当てる機能があるのでこれを使えばよさげ。結局、以下のようにしてご満悦です。
~/.lessrcに以下を追加。

#command
x  shell tar -zxf %

~/.less を生成。

  $ lesskey ~/.lessrc

これで less foo.tar.gz して x を打鍵するとカレントディレクトリに展開してくれました。
tar.bz2とかにも対応するならラッパースクリプトかけばよさげ。

*1:export LESSOPEN='|lesspipe.sh %s'とか