すべての圧縮形式に対応するすべての抽出コマンドを忘れてしまいます。
そのため、ファイル拡張子を適切な抽出コマンドにマップするだけのスクリプトを書くことを考えていました。しかし、私はこのようなものがすでに存在すると思います、私はそれを見つけることができません。
ファイルローラーのようなものに満足しますが、ファイルローラーはGUIツールです。
いくつかの提案:
unp(software-centerから入手可能)は、さまざまなアーカイブを現在のフォルダーに解凍する小さなPerlモジュールです。サポートするアーカイブ形式にはunp -s
を使用します
デフォルトでは、アーカイブを現在のフォルダーに解凍します。
ファイルローラー自体は、コマンドラインから実行できます。 file-roller -h <archive name>
を使用して、アーカイブを解凍します。
here から、.bashrcに追加します。
extract () {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) rar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.Zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*) echo "'$1' cannot be extracted via extract()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
まだ言及されていないのは、コマンドラインユーティリティのswiss-army-knifeです:atool
;リポジトリで利用可能です: atool またはSudo apt-get install atool
を実行します。
atool
は、実際には script で、aunpack、apack、als、acat、adiff、arepackなどのさまざまな関数で構成されています。おそらく、このプログラムの最も一般的な使用法は、aunpackコマンドを使用してアーカイブを抽出することです。興味深い便利なオプションはかなりありますが、ほとんどのアーカイブを抽出する基本的な方法は、たとえば次のように実行することです
aunpack myarchive.tar
Tar、7z、Zip、jar、rar、ar、lha、およびその他の多くのアーカイブ形式とそれらのバリエーションのサポートは、端末にman atool
を入力するか、 オンラインのUbuntuマンページ 。
したがって、同じフォルダーにtar、Zip、およびgzアーカイブがある場合、それらをすべて抽出するために必要なことは、実行するだけです。
aunpack -e *
サポートされているすべてのアーカイブは、フォルダー構造が保持された状態で解凍されます。結果のフォルダの名前がすでに存在する場合、上書きされませんが、unpack-5645のような一意の名前が付けられます。
または、1種類のアーカイブのみを選択してすべてを解凍する場合は、代わりに
aunpack -e *.Zip
サブフォルダーのディレクトリ構造のみを保持して(存在する場合)、特定のディレクトリでファイルを直接解凍する必要がある場合は、たとえば次のように入力します。
aunpack -e Scripts11.Zip -X /home/mike/Videos
同じ名前のファイルが既に存在する場合、コマンドで強制オプション(-f
)を指定していない限り、名前を変更するか上書きするアクションを求めるプロンプトが表示されます。
マンページに記載されているように、aunpackは最初に抽出します
ファイルを一意の(一時的な)ディレクトリに移動し、可能であればその内容をmov [es]します。これにより、ローカルファイルが誤って上書きされることも防止されます。
manページ で述べられているように、他のツールでは、他のアクションが可能です。
すべてのユーティリティにはさらに多くの便利なオプションがありますが、おそらく最も使用頻度の高いものはaunpackになります。複数の異なるアーカイブを簡単に抽出できるからです。 1つのコマンドを発行するだけで、tar、Zipなどのさまざまなコマンドを使用せずに複数の異なるアーカイブ形式を抽出できることは素晴らしいことです。
Thunarなど、ファイルマネージャーのカスタムアクションにatool関数を統合する方法を説明した最新の記事については、 this online magazine を参照してください。
dtrx
というツールがあります-適切な抽出を行います。
Ubuntuリポジトリからインストールし、dtrx somefile.someext
を実行します。このツールは、ネストされたアーカイブ(ZipファイルのZip)についてユーザーに対話的にクエリします。
dtrxは frabjous's extract の洗練されたバージョンです。
どのようなフォーマットに対処する必要がありますか? 1つの方法は、引数の拡張子をチェックするシェルスクリプトを記述することです。または、.tar。*のバリエーションだけを扱う場合は、tar -xf
を実行するだけで、それらのほとんどを自動的に処理できます。 (したがって、それとunzip
だけを覚えています。これは、私が通常遭遇するすべてのものに十分です。)