コマンドラインアーカイブマネージャー/エクストラクター


15

すべての圧縮形式に対応するすべての抽出コマンドを忘れてしまいます。

そのため、ファイル拡張子を適切な抽出コマンドにマッピングするだけのスクリプトを書くことを考えていました。しかし、私はこのようなものがすでに存在すると思います、私はそれを見つけることができません。

ファイルローラーのようなものには満足しますが、ファイルローラーはGUIツールです。

回答:


11

いくつかの提案:

unp

unp(ソフトウェアセンターから入手可能)は、さまざまなアーカイブを現在のフォルダーに解凍する小さなperlモジュールです。unp -sサポートするアーカイブ形式に使用

デフォルトでは、アーカイブを現在のフォルダーに解凍します。

ファイルローラー

ファイルローラー自体は、コマンドラインから実行できます。file-roller -h <archive name>アーカイブの解凍に使用します。


11

ここから、.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
} 

使用方法の例を追加しますか?
MiniGod 14

4
抽出file.zip
frabjous

4

まだ言及されていないのは、コマンドラインユーティリティのswiss-army-knifeatoolです。リポジトリで利用可能です:atoolを クリックするツールをインストールするか、を実行しsudo apt-get install atoolます。

atool実際には、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ページで述べられているように、他のアクションが可能です

  • apackは、ファイルまたはフォルダー指定またはstdinからアーカイブを作成します
  • als は指定されたアーカイブ内のファイルをリストします
  • acatを使用すると、アーカイブファイルを標準出力に抽出できます。
  • adiffを使用すると、指定した2つのアーカイブを比較できます
  • arepackを使用すると、元のアーカイブの内容を一時フォルダーに入れてから新しいアーカイブを再パックすることにより、あるアーカイブ形式を別のアーカイブ形式に変換できます。

すべてのユーティリティにはさらに多くの便利なオプションがありますが、おそらく最も使用頻度の高いものはaunpackになります。複数の異なるアーカイブを簡単に抽出できるからです。1つのコマンドを発行するだけで、tar、zipなどのさまざまなコマンドを使用せずに複数の異なるアーカイブ形式を抽出できることは素晴らしいことです。

Thunarなどのファイルマネージャーのカスタムアクションにatool関数を統合する方法を説明した最新の記事については、このオンラインマガジンを参照してください。


3

というツールがあります dtrx -適切な抽出を行います。

Ubuntuリポジトリからインストールして実行しdtrx somefile.someextます。このツールは、ネストされたアーカイブ(zipファイルのzip)についてユーザーに対話的に問い合わせます。

dtrxはfrabjousのextractの洗練されたバージョンです。


0

どのようなフォーマットに対処する必要がありますか?1つの方法は、引数の拡張子をチェックするシェルスクリプトを記述することです。または、.tar。*のバリエーションだけを扱う場合は、単に行うtar -xfことでそれらのほとんどを自動的に処理できます。(したがって、私はそれを覚えているだけで、unzip私が通常遭遇するすべてのもので十分です。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.