すべてのアーカイブ/圧縮形式を抽出できる無料/オープンソースのコマンドラインツールはありますか?

すべてのアーカイブ/圧縮形式を抽出できる無料/オープンソースのコマンドラインツールはありますか?

そして数字が増え続けています。アーカイブ/圧縮ファイル形式をすべて管理できる無料/オープンソースのコマンドラインツールはありますか?一貫して統一されたフラグセットがありますか? (私の友達に注意してくださいtarへの暗黙の参照)

かつて別のユーティリティにリンクされているファイルを圧縮/圧縮解除する作業を大幅に簡素化するように設計されたエイリアスセットが見つかりましたが、見つかりませんtarでした。

修正する:atoolzipファイルを抽出せずにunzip(明らかに4GBを超えるファイルを処理できません)、使用するように設定するにはどうすればよいですかgunzip

$ aunpack large_file.zip
error:  Zip file too big (greater than 4294959102 bytes)
Archive:  large_file.zip
warning [large_file.zip]:  1491344848 extra bytes at beginning or within zipfile
  (attempting to process anyway)
error [large_file.zip]:  start of central directory not found;
  zipfile corrupt.
  (please check that you have transferred or created the zipfile in the
  appropriate BINARY mode and that you have compiled UnZip properly)
aunpack: unzip ...: non-zero return-code

答え1

私は使うツール。操作が完了します。これはさまざまな(すべてではない)形式で機能します。

tar、gzip、bzip2、bzip、lzip、lzop、lzma、zip、rar、lha、arj、arc、p7zipなど

これらの圧縮ツールはまだ必要ですが、ツールはフロントエンドにすぎません。

als特に、サポートされているアーカイブ形式の内容を一覧表示するために提供するコマンドが好きです。

基本atoolコマンドは独自のフラグを使用してアーカイブを抽出します(そのフラグを特定の基本抽出ツールに渡します)。

ああ、それはいくつかのディストリビューションのリポジトリにあります(私の場合はFedoraですが、Ubuntuを使用したときにリポジトリにはありませんでした。Tarballからインストールしました)。

リポジトリの更新:atoolは次のディストリビューションのリポジトリにあります(現在のバージョンのみを確認してください):

  • Fedoraの帽子
  • Debian(@terdonに感謝し、おそらくUbuntuのような派生製品でしょう)
  • Ubuntu(qedやおそらくMintなどの派生製品)
  • オープンスース
  • CentOS(およびおそらくRHEL)
  • アーキテクチャLinux

私は他のものがあると確信しています...最も近代的なディストリビューションのようです。

「zipファイルを抽出するためにunzipを使用せずに代わりにgunzipを使用するようにatoolのようなものを設定するにはどうすればよいですか?」質問に対する回答を更新します。:

atool 構成ファイルを編集し、~/.atoolrc次の行を追加します。

path_unzip /usr/bin/gunzip

gunzip プログラムの正しいパスです。

この構成ファイルに入れることができる可能な変数の完全なリストについては、マニュアルページを参照してください。たくさん。 gunzipにunzipとは異なるコマンドラインオプションが必要な場合は、atoolソースコード(perl)自体を変更する必要があるかもしれません。

答え2

これは、さまざまなアーカイブタイプを処理する小さなシェル機能です。

extract () {
    if [ ! -f "$1" ] ; then
        echo "'$1' does not exist."
        return 1
    fi

    case "$1" in
        *.tar.bz2)   tar xvjf "$1"   ;;
        *.tar.xz)    tar xvJf "$1"   ;;
        *.tar.gz)    tar xvzf "$1"   ;;
        *.bz2)       bunzip2 "$1"    ;;
        *.rar)       rar x "$1"      ;;
        *.gz)        gunzip "$1"     ;;
        *.tar)       tar xvf "$1"    ;;
        *.tbz2)      tar xvjf "$1"   ;;
        *.tgz)       tar xvzf "$1"   ;;
        *.zip)       unzip "$1"      ;;
        *.Z)         uncompress "$1" ;;
        *.xz)        xz -d "$1"      ;;
        *.7z)        7z x "$1"       ;;
        *.a)         ar x "$1"       ;;
        *)           echo "Unable to extract '$1'." ;;
    esac
}

見つけました。オリジナルarこの機能は、アーカイブおよびxz圧縮アーカイブを抽出するためにいくつかの修正を経て、オンラインのどこかで参照されますtar

答え3

これAVFS/path/to/foo.zipファイルシステムは、各アーカイブファイル(たとえば)がディレクトリ(~/.avfs/path/to/foo/zip#この例では)としてアクセスできるファイルシステムビューを提供します。 AVFSは、最も一般的なアーカイブファイル形式への読み取り専用アクセスを提供します。

mountavfs
cp -Rp ~/.avfs$PWD/large_file.zip\# extraction_directory

Avfsはファイルを編集して簡単に設定できる外部ヘルパーを使用します(残念ながら、avfs 1.0以降はホームディレクトリのファイルが/usr利用できないため、ファイルを編集または再コンパイルする必要があります)。ファイルを処理するスクリプトです。使用しない場合は変更してください。代わりに7zを使用することもできます。行を編集して。/usr/local/usr/usr/share/avfs/extfs/ext-uzip.zip/usr/bin/unzip/usr/share/avfs/extfs/extfs.iniext-uzipu7z .zip

答え4

無料アーカイブマルチフォーマットアーカイブおよび圧縮ライブラリサポートするさまざまなアーカイブと圧縮形式

bsdtarそれぞれ -like API を使用するbsdcpioコマンドラインインタフェースです。tarcpio

したがって、これらのユーティリティに既に慣れている場合は、コマンドラインインターフェイスを学ぶ必要はありません。

.iso、、、、...ファイルを解凍するには.zip、次の手順を実行します.cab.7z.tar.gz.xz.bz2

bsdtar xf file.<ext>

tar xf file.tar従来のコマンドを使用するのと同じですtar

関連情報