回答:
次のシェルスクリプトを使用できます(名前を付けてextract
に入れました~/bin
)。
#!/ bin / bash if [$#-lt 1];その後 echo "使用法:` basename $ 0` FILES " 1番出口 fi #私は、次の関数見つかっhttps://unix.stackexchange.com/a/168/37944 #私はそれを少し改善しました。このアイデアをsydoに感謝します。 抽出(){ $ @の引数用; 行う if [-f $ arg]; その後 $ argのケース * .tar.bz2)tar xjf $ arg ;; * .tar.gz)tar xzf $ arg ;; * .bz2)bunzip2 $ arg ;; * .gz)gunzip $ arg ;; * .tar)tar xf $ arg ;; * .tbz2)tar xjf $ arg ;; * .tgz)tar xzf $ arg ;; * .zip)$ argを解凍します;; * .Z)$ arg ;; * .rar)rar x $ arg ;; # 'rar'をインストールする必要があります * .jar)jar -xvf $ arg ;; # 'jdk'をインストールする必要があります *)echo "'$ arg'はextract()で抽出できません" ;; esac そうしないと echo「 '$ arg'は有効なファイルではありません」 fi 終わった } $ @を抽出
スクリプトを実行可能にすることを忘れないでください:
chmod +x ~/bin/extract
使用法:
file_1 file_2 ... file_nを抽出します
basename $arg
すると役立つ場合があります。
atool
複数の形式を抽出/パックできるも参照してください。この質問に対して私が出した答えを参照してください:command-line-archive-manager-extracter。この質問もその質問の複製なので、おそらくそれらをマージする必要があります。