zshのalias -sで解凍
zshのalias -sは拡張子に合わせてコマンドを実行できて便利なのだが*1
alias -s 'tar.gz'='tar xzvf'
としても期待通りには動いてくれない(何か間違っているのかな……)
仕方が無いので
function extract() { case $1 in *.tar.gz|*.tgz) tar xzvf $1 ;; *.tar.xz) tar Jxvf $1 ;; *.zip) unzip $1 ;; *.lzh) lha e $1 ;; *.tar.bz2|*.tbz) tar xjvf $1 ;; *.tar.Z) tar zxvf $1 ;; *.gz) gzip -dc $1 ;; *.bz2) bzip2 -dc $1 ;; *.Z) uncompress $1 ;; *.tar) tar xvf $1 ;; *.arj) unarj $1 ;; esac } alias -s {gz,tgz,zip,lzh,bz2,tbz,Z,tar,arj,xz}=extract
としましたとさ.
これで
$ ./hogefuga.tar.gz
等で解凍できるようになる.
ちなみに他の環境で解凍コマンドを忘れて困りそうだが,今迄もC-rの検索から解凍していたのであまり変わらない気もする.*2
追記(2010/10/21)
コメントでaunpackというのを教えてもらったので,aptitudeからatoolをインストールし,設定は
alias -s {gz,tgz,zip,lzh,bz2,tbz,Z,tar,arj,xz}=aunpack
に変更した.既にあるものを使うのが一番ですね!(おい
*1:参考: http://journal.mycom.co.jp/column/zsh/016/index.html
*2:*.zipと*.tar.gz以外の解凍はまともに覚えていない……