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