いろいろな形式の圧縮ファイルを解凍する
スクリプト名: unsqueeze.sh
書式: unsqueeze.sh ファイル ...
目的: さまざまな圧縮形式のファイルを解凍する
戻り値: すべて成功:0 一部失敗:1 エラー:9
#!/bin/sh . Error_Msg.sh && . Arg_Nums.sh && . Chk_File.sh || exit 9 Arg_Nums -ge 1 "$@" || exit 9 Chk_File -dw "." || exit 9 for _COMPRESS in "$@"; do _FLAG= #圧縮ファイルの読み込みチェック Chk_File -r "$_COMPRESS" || \ { Error_Msg "$0" "Could not read $_COMPRESS." _FLAG=failed; } #展開コマンドの確定とフラグ case $_COMPRESS in *.tar.gz | *.tgz ) _COMMAND="tar zxf" ;; *.tar.bz | *.tbz ) _COMMAND="tar jxf" ;; *.tar ) _COMMAND="tar xf" ;; *.lzh | .LZH ) _COMMAND="lha x" ;; *.gz | *.z | *.Z ) _COMMAND="gunzip" ; _FLAG=over ;; *.bz2 | *.bz ) _COMMAND="bunzip2" ; _FLAG=over ;; *.zip ) _COMMAND="unzip" ;; * ) Error_Msg "$0" "Unknown file extension." _FLAG=failed ;; esac #展開作業 if [ "$_FLAG" = over ]; then _FILENAME=$(echo "$_COMPRESS" | sed 's%\.[^\.]*$%%') _FILENAME=$(basename "$_FILENAME") $_COMMAND < "$_COMPRESS" > "$_FILENAME" elif [ "$_FLAG" = failed ]; then _RETURN=1 else $_COMMAND "$_COMPRESS" fi done exit $_RETURN