GNU/Linux >> Linux の 問題 >  >> Linux

さまざまなタイプのファイルアーカイブを抽出するBash関数

さまざまな種類のアーカイブファイルを抽出するために利用できるアプリケーションは非常にたくさんあります。各アーカイブツールのすべてのオプションとパラメータを覚えておくのは難しいでしょう。心配ない!今日、私はLinuxでさまざまなタイプのファイルアーカイブを抽出するための単純なBash関数に出くわしました。

このBash関数は、.tar.bz2などの最も一般的に使用されるアーカイブ形式を抽出できます。 、.tar.bz.bz2.rar.zip 、および.7z など。アーカイブファイルを抽出するために実際のアーカイブアプリケーションを使用する必要はありません。この関数を〜/ .bashrcファイルに追加し、それを呼び出してアーカイブファイルを抽出するだけです。適切なアーカイブツールを自動的に見つけて使用し、ファイルを抽出します。フラグやオプションを覚える必要はありません!

ファイルアーカイブを抽出するBash関数

~/.bashrcを開きます 選択したテキストエディタのファイル:

$ nano ~/.bashrc

最後に次のスニペットを追加します:

# Bash Function To Extract File Archives Of Various Types
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  ;;
             *.7z)        7z x $1    ;;
             *)           echo "'$1' cannot be extracted via extract()" ;;
         esac
     else
         echo "'$1' is not a valid file"
     fi
}

Ctrl+oを押します Enterキーを押してファイルを保存し、Ctrl+を押します。 xを押してファイルを終了します。次のコマンドを実行して、変更を有効にします。

$ source ~/.bashrc

今後は、この関数を呼び出すだけで、さまざまな種類のアーカイブファイルを抽出できます。

たとえば、.7zを抽出します コマンドを使用したアーカイブファイルタイプ:

$ extract archive.7z 

出力例:

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_IN,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz (206A7),ASM)

Scanning the drive for archives:
1 file, 16013693 bytes (16 MiB)

Extracting archive: archive.7z
--
Path = archive.7z
Type = 7z
Physical Size = 16013693
Headers Size = 1204
Method = LZMA:23
Solid = +
Blocks = 1

Everything is Ok                                                               

Folders: 21
Files: 37
Size:       16625007
Compressed: 16013693

同様に、.zipを抽出するには ファイルを入力すると、コマンドは次のようになります。

$ extract archive.zip 

この機能を使用する前に、適切なアーカイブマネージャをインストールしておく必要があることに注意してください。サポートされているアーカイブツールがシステムにインストールされていない場合は、次のようなエラーメッセージが表示されます。

$ extract archive.zip 
bash: /usr/bin/unzip: No such file or directory

このスクリプトの元の作成者は不明です。このスクリプトは、インターネット上の複数の場所で言及されています。誰がこれを書いたか知っている人がいたら、下のコメントセクションで知らせてください。著者の詳細を追加します。

他のクールなBash関数を使用していますか?コメント欄でシェアしてください。それは私だけでなく、すべての読者にとって役立つかもしれません。

関連記事:

  • Linuxでフルネームを2回入力せずにファイルの名前を変更する
  • バッシュのヒント-1つのコマンドでcpまたはmvとcdを実行する方法
  • [Bashのヒント]1つのコマンドでcdとlsを実行する方法
  • Linuxでファイルとディレクトリをアーカイブする方法[パート1]

Linux
  1. LinuxでRARファイルを作成、抽出、または開く方法は?

  2. Linux cpio の例:cpio アーカイブ (および tar アーカイブ) を作成および抽出する方法

  3. 巨大な tgz ファイルから単一のファイルを抽出する

  1. bashでパスと拡張子なしでファイルのベース名を抽出します

  2. パターンに一致する最新のファイルを見つけるための Bash 関数

  3. Linux/bashでバイナリファイルのテキスト部分を抽出するには?

  1. Bash:ファイルに書き込む

  2. バッシュ‘?

  3. アーカイブを作成および抽出するためのLinuxでの10のtarコマンドの例