tar.gzの中身を確認

tar czvf /home/hoge/foo/target target.tar.gz

なんて固められてたら展開したときに ./home/hoge/foo 分の階層をたどらないといけないんだろうなー。
と思って tar.gz の中身が確認したかったので調べてみた。

tar.gzの中身を確認。

zcat target.tar.gz | tar tv

lessでも確認できる

もっと調べてたらどうやら less で見れるらしい?!

less target.tar.gz

うおー!これはすごい!
なんでですか?



それで、実際どうなっているのかというと、 less がファイルを開くときに LESSOPEN 環境変数を読みこんで、その値をフィルタプログラムとして起動することで less する内容を変化させられるようになっています。


なるほど。みてみたらこんな感じになってた

vim /usr/bin/lesspipe.sh

#!/bin/sh -
#
# To use this filter with less, define LESSOPEN:
# export LESSOPEN="|/usr/bin/lesspipe.sh %s"

lesspipe() {
  case "$1" in
  *.[1-9n]|*.man|*.[1-9n].bz2|*.man.bz2|*.[1-9].gz|*.[1-9]x.gz|*.[1-9].man.gz)
        case "$1" in
                *.gz)   DECOMPRESSOR="gunzip -c" ;;
                *.bz2)  DECOMPRESSOR="bunzip2 -c" ;;
                *)      DECOMPRESSOR="cat" ;;
        esac
        if $DECOMPRESSOR -- "$1" | file - | grep -q troff; then
                if echo "$1" | grep -q ^/; then #absolute path
                        man -- "$1" | cat -s
                else
                        man -- "./$1" | cat -s
                fi
        else
                $DECOMPRESSOR -- "$1"
        fi ;;
  *.tar) tar tvvf "$1" ;;
  *.tgz|*.tar.gz|*.tar.[zZ]) tar tzvvf "$1" ;;
  *.tar.bz2|*.tbz2) bzip2 -dc -- "$1" | tar tvvf - ;;
  *.[zZ]|*.gz) gzip -dc -- "$1" ;;
  *.bz2) bzip2 -dc -- "$1" ;;
  *.zip) zipinfo -- "$1" ;;
  *.rpm) rpm -qpivl --changelog -- "$1" ;;
  *.cpi|*.cpio) cpio -itv < "$1" ;;
  *.gif|*.jpeg|*.jpg|*.pcd|*.png|*.tga|*.tiff|*.tif)
   if [ -x "`which identify`" ]; then
     identify "$1"
   else
     echo "No identify available"
     echo "Install ImageMagick to browse images"
   fi ;;
  *)
        case "$1" in
                *.gz)   DECOMPRESSOR="gunzip -c" ;;
                *.bz2)  DECOMPRESSOR="bunzip2 -c" ;;
        esac
        if [ ! -z $DECOMPRESSOR ] ; then
                $DECOMPRESSOR -- "$1" ;
        fi
  esac
}

if [ -d "$1" ] ; then
        /bin/ls -alF -- "$1"
else
        lesspipe "$1" 2> /dev/null
fi

と、みてたらおっとー。画像ファイルもなんか less できるっぽいぞ?
UNIXの部屋 コマンド検索:identify (*BSD/Linux)
高さ、幅、色情報、サイズ、画像形式などが見れるらしい。


lessすごい!lessバンザイ!