ファイル圧縮は、時間の節約、スペースの作成、ソフトウェアとデータのダウンロードと転送の高速化に役立つアーカイブを作成する方法です。圧縮ファイルを使用して、データを失うことなく、すべてを1つのファイルに圧縮してインターネット上で関連ファイルを配布できます。システムまたは外部ストレージデバイスにスペースが必要な場合は、ファイルをより小さなアーカイブファイルに圧縮できます。場合によっては、複数のzipファイルとrarファイルを一度に抽出する必要があります。これらのファイルはすべて1つのフォルダーにあります。 LinuxUIを介してこれを行うのはかなり簡単です。抽出するすべてのファイルを選択して右クリックし、抽出オプションを使用してそれらをすべて抽出するだけです。実際の取引は、コマンドラインから同じタスクを実行したい場合です。ファイル抽出コマンドを1つずつ入力して1つずつ抽出するのは、非常に長く、率直に言って非論理的であることがわかります。これが、救助するためのbashのforループです。これを使用して、複数の同様の操作を一度に実行できます。
この記事では、bashシェルでforループを使用して、Debianコマンドラインから次のタイプの複数のファイルを抽出する方法について説明します。
- Zipファイル
- Tar.xzファイル
- RARファイル
- 7zファイル
この記事に記載されているコマンドと手順をDebian10Busterシステムで実行しました。 Debianコマンドラインとしてターミナルアプリケーションを使用しています。次のように、アプリケーションランチャー検索で開くことができます。
アプリケーションランチャーには、キーボードのWindows/スーパーキーを使用してアクセスできます。
一度に複数のファイルを解凍する
フォルダ(この場合は「zip_files」フォルダ)に複数のzipファイルが含まれていて、それらを同時に抽出したいとします。
forループを使用してタスクを単純化する方法は次のとおりです。
$ for z in *.zip do unzip $z; done
1つのコマンドで同じタスクを実行する方法は次のとおりです。
$ for z in *.zip; do unzip "$z"; done
一度に複数のtar.xzファイルを抽出します
フォルダに複数のtar.xzファイルが含まれていて、それらを同時に抽出したいとします。
forループを使用してタスクを単純化する方法は次のとおりです。
$ for z in *.tar.xz do tar -xf $z; done
1つのコマンドで同じタスクを実行する方法は次のとおりです。
$ for z in *.tar.xz; do tar -xf "$z"; done
一度に複数のファイルを再生する
複数のrarファイルを一度にunrarするには、次のコマンドを使用します。
$ for z in *.rar do unrar e $z; done
または、
$ for f in *.rar; do unrar e “$f”; done
一度に複数の7zファイルを抽出する
複数の7zファイルを一度に抽出するには、次のコマンドを使用します。
$ for z in *.7z do 7z e $z; done
または、
$ for z in *.7z; do 7z e "$z"; done
bash forループを使用することで、複数の圧縮ファイルを一度に抽出するという多忙なタスクを実行できます。この記事で学んだこの小さなスキルは、何百もの圧縮ファイルを同時に抽出する必要がある場合に特に便利です。ファイルの抽出だけでなく、bashの「for」ループの機能を使用して、1つずつ実行すると時間がかかる可能性のある他のさまざまな同様のタスクを実行することもできます。