web-dev-qa-db-ja.com

あらゆる種類のアーカイブファイルをコマンドラインからすばやく抽出する方法

多くの場合、コンマを使用してさまざまな種類のアーカイブファイルを抽出する必要があります。しかし、あらゆるタイプのファイルアーカイブの正確なコマンドを常に覚えているわけではありません。だから、時間を無駄にしてもう一度検索する必要があります。どうすればこれを回避できますか?

9
Radu Rădeanu

次のシェルスクリプトを使用できます(extractという名前を付けて、~/binに配置します)。

#!/ bin/bash
 
 if [$#-lt 1]; then 
 echo "Usage:` basename $ 0` FILES "
 exit 1 
 fi 
 
# https://unix.stackexchange.com/a/168/37944 で次の関数を見つけました
# 少し改善しました。このアイデアを sydo に感謝します。
 extract(){
 $ @の引数。 do 
 if [-f $ arg]; then 
 case $ arg in 
 * .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)unzip $ arg ;; 
 * .Z)uncompress $ arg ;; 
 * .rar)rar x $ arg ;; #「rar」をインストールする必要があります
 * .jar)jar -xvf $ arg ;; # 'jdk'をインストールする必要があります
 *)echo "'$ arg'はextract()で抽出できません" ;; 
 esac 
 else 
 echo " 「$ arg」は有効なファイルではありません」
 fi 
 done 
} 
 
 extract $ @ 

スクリプトを実行可能にすることを忘れないでください:

chmod +x ~/bin/extract

使用法:

エキス file_1 file_2 ... file_n
9
Radu Rădeanu

dtrxコマンドはあなたの友人です。

そのタイプを推測することにより、アーカイブファイルを解凍します。また、解凍したファイルが新しいディレクトリに配置されることを確認します。現在の作業ディレクトリを大量のファイルで混乱させないようにします。

インストール

Sudo aptitude install dtrx

使用法

dtrx stuff.Zip
11
Thomasleveil