Linuxでtarコマンドを使用してファイルを圧縮および抽出する方法

公開: 2022-07-23

圧縮されたTarballヘッダーUbuntu

Linuxのtarコマンドは、「tarballs」とも呼ばれる.tar.gzまたは.tgzアーカイブファイルを作成するためによく使用されます。 このコマンドには多数のオプションがありますが、tarを使用してアーカイブをすばやく作成するには、数文字を覚えておく必要があります。 tarコマンドは、結果のアーカイブも抽出できます。

Linuxディストリビューションに含まれているGNUtarコマンドには、圧縮が統合されています。 .tarアーカイブを作成し、1つのコマンドでgzipまたはbzip2圧縮を使用して圧縮できます。 そのため、結果のファイルは.tar.gzファイルまたは.tar.bz2ファイルになります。

アップデート、7/18/22:この記事の正確性を確認し、最新バージョンのUbuntuおよびその他のLinuxディストリビューションでも機能することを確認できます。

ディレクトリ全体または単一のファイルを圧縮する

Linuxでディレクトリ全体または単一のファイルを圧縮するには、次のコマンドを使用します。 また、指定したディレクトリ内の他のすべてのディレクトリを圧縮します。つまり、再帰的に機能します。

 tar -czvf name-of-archive.tar.gz / path / to / directory-or-file

これらのスイッチの実際の意味は次のとおりです。

  • -c :アーカイブを作成します。
  • -z :gzipを使用してアーカイブを圧縮します。
  • -v :アーカイブの作成中にターミナルに進行状況を表示します。これは「verbose」モードとも呼ばれます。 これらのコマンドでは、vは常にオプションですが、便利です。
  • -f :アーカイブのファイル名を指定できます。

現在のディレクトリに「stuff」という名前のディレクトリがあり、それをarchive.tar.gzという名前のファイルに保存するとします。 次のコマンドを実行します。

 tar-czvfarchive.tar.gzのもの

または、現在のシステムの/ usr / local / somethingにディレクトリがあり、それをarchive.tar.gzという名前のファイルに圧縮するとします。 次のコマンドを実行します。

 tar -czvf archive.tar.gz / usr / local / something 

目的のフォルダで「tar-czvf」を実行して、すべてのコンテンツをバンドルして圧縮します。

複数のディレクトリまたはファイルを一度に圧縮する

関連: Linuxターミナルからファイルを管理する方法:知っておくべき11のコマンド

tarは、単一のディレクトリを圧縮するために頻繁に使用されますが、複数のディレクトリ、複数の個別のファイル、またはその両方を圧縮するためにも使用できます。 単一のものではなく、ファイルまたはディレクトリのリストを提供するだけです。 たとえば、/ home / ubuntu / Downloadsディレクトリ、/ usr / local / stuffディレクトリ、および/home/ubuntu/Documents/notes.txtファイルを圧縮するとします。 次のコマンドを実行するだけです。

 tar -czvf archive.tar.gz / home / ubuntu / Downloads / usr / local / stuff /home/ubuntu/Documents/notes.txt

バックアップしたいディレクトリまたはファイルをいくつでもリストしてください。

「tar」コマンドを使用して一度に複数のディレクトリを圧縮するUbuntuターミナル。

ディレクトリとファイルを除外する

場合によっては、ディレクトリ全体を圧縮したいが、特定のファイルやディレクトリを含めたくない場合があります。 これを行うには、除外するディレクトリまたはファイルごとに--excludeスイッチを追加します。

たとえば、/ home / ubuntuを圧縮したいが、/ home / ubuntu/Downloadsおよび/home/ubuntu/.cacheディレクトリを圧縮したくないとします。 これがあなたがそれをする方法です:

 tar -czvf archive.tar.gz / home / ubuntu --exclude = / home / ubuntu / Downloads --exclude = / home / ubuntu / .cache

--excludeスイッチは非常に強力です。 ディレクトリやファイルの名前は使用せず、実際にはパターンを受け入れます。 あなたがそれでできることはもっとたくさんあります。 たとえば、次のコマンドを使用して、ディレクトリ全体をアーカイブし、すべての.mp4ファイルを除外できます。

 tar -czvf archive.tar.gz / home / ubuntu --exclude=*。mp4 

「tar」コマンドは、一部のファイルを選択的に無視するように調整できます。

代わりにbzip2圧縮を使用してください

gzip圧縮は.tar.gzまたは.tgzファイルの作成に最も頻繁に使用されますが、tarはbzip2圧縮もサポートしています。 これにより、bzip2で圧縮されたファイル(多くの場合、.tar.bz2、.tar.bz、または.tbzファイル)を作成できます。 これを行うには、ここのコマンドのgzipの-zをbzip2の-jに置き換えるだけです。

Gzipの方が高速ですが、通常は圧縮率が少し低いため、ファイルがやや大きくなります。 Bzip2は低速ですが、圧縮率が少し高くなるため、ファイルがやや小さくなります。 Gzipもより一般的であり、デフォルトでgzipサポートを含む一部の簡素化されたLinuxシステムがありますが、bzip2サポートは含まれていません。 ただし、一般的に、gzipとbzip2は実質的に同じものであり、どちらも同じように機能します。

たとえば、stuffディレクトリを圧縮するために提供した最初の例の代わりに、次のコマンドを実行します。

 tar-cjvfarchive.tar.bz2のもの

gzipの代わりにbzip2圧縮を実行している端末。

アーカイブを抽出する

アーカイブを取得したら、tarコマンドを使用してアーカイブを抽出できます。 次のコマンドは、archive.tar.gzの内容を現在のディレクトリに抽出します。

 tar -xzvf archive.tar.gz

これは、 -xスイッチが-cスイッチに置き換わる点を除いて、上記で使用したアーカイブ作成コマンドと同じです。 これは、アーカイブを作成する代わりに、アーカイブを抽出することを指定します。

アーカイブの内容を特定のディレクトリに抽出したい場合があります。 これを行うには、コマンドの最後に-Cスイッチを追加します。 たとえば、次のコマンドは、archive.tar.gzファイルの内容を/tmpディレクトリに抽出します。

 tar -xzvf archive.tar.gz -C / tmp

ファイルがbzip2で圧縮されたファイルの場合は、上記のコマンドの「z」を「j」に置き換えます。

「-czvf」引数の代わりに「-xzvf」を指定して「tar」を実行し、tarballアーカイブからファイルを抽出します。


これは、tarコマンドの最も簡単な使用法です。 このコマンドには多数の追加オプションが含まれているため、ここにすべてをリストすることはできません。 詳細については。 シェルでinfotarコマンドを実行して、tarコマンドの詳細情報ページを表示します。 完了したら、 qキーを押して情報ページを終了します。 tarのマニュアルをオンラインで読むこともできます。

グラフィカルなLinuxデスクトップを使用している場合は、デスクトップに含まれているファイル圧縮ユーティリティまたはファイルマネージャーを使用して、.tarファイルを作成または抽出することもできます。 Windowsでは、無料の7-Zipユーティリティを使用して.tarアーカイブを抽出および作成できます。

関連:開発者と愛好家のための最高のLinuxラップトップ