Linuxでtarコマンドを使用してファイルを圧縮および展開する方法
重要なポイント
- Linuxのtarコマンドは、TARアーカイブファイルを作成および抽出するために使用されます。
- ターミナルで「tar -czvf (アーカイブ名).tar.gz (ファイルパス)」を実行してファイルやフォルダーを圧縮します。現在のフォルダーにアーカイブを展開するには、「tar -xzvf (アーカイブファイル)」のコマンドを実行します。
- 複数のディレクトリやファイルを一度に圧縮するには、ファイルやディレクトリのリストを提供し、--excludeスイッチを使用して特定のファイルやディレクトリを除外することができます。
Linuxのtarコマンドは、.tar.gzや.tgzアーカイブファイル、いわゆる「タールボール」を作成するためにしばしば使用されます。このコマンドには多くのオプションがありますが、tarでアーカイブを迅速に作成するために必要な文字をいくつか覚えておけば十分です。tarコマンドは、作成したアーカイブを抽出することもできます。
Linuxディストリビューションに含まれているGNU tarコマンドには、統合された圧縮機能があります。それは、単一のコマンドで.tarアーカイブを作成し、gzipまたはbzip2圧縮で圧縮することができます。だからこそ、生成されるファイルは.tar.gzファイルまたは.tar.bz2ファイルになります。
ディレクトリ全体または単一ファイルを圧縮する
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 -czvf archive.tar.gz stuffあるいは、現在のシステムに /usr/local/something というディレクトリがあり、それを archive.tar.gz という名前のファイルに圧縮したいとします。その場合、次のコマンドを実行します:
tar -czvf archive.tar.gz /usr/local/something複数のディレクトリまたはファイルを一度に圧縮する
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バックアップしたいディレクトリやファイルを好きなだけリストしてください。
ディレクトリとファイルを除外する
場合によっては、ディレクトリ全体を圧縮したいが、特定のファイルやディレクトリを含めたくないこともあるでしょう。その場合は、除外したい各ディレクトリまたはファイルのために --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=*.mp4bzip2圧縮を使用してください
gzip圧縮は最も一般的に.tar.gzまたは.tgzファイルを作成するために使用されますが、tarはbzip2圧縮もサポートしています。これにより、.tar.bz2、.tar.bz、または.tbzファイルと呼ばれるbzip2圧縮ファイルを作成できます。これを行うには、ここでのコマンドの-gzip用の-zをbzip2用の-jに置き換えればよいです。
Gzipはより高速ですが、一般的には少し圧縮率が低く、結果的にやや大きなファイルになります。Bzip2は遅いですが、若干圧縮率が高く、したがってやや小さなファイルになります。Gzipはより一般的で、いくつかの軽量Linuxシステムではデフォルトでgzipのサポートが含まれていますが、bzip2のサポートは含まれていません。一般的に言えば、gzipとbzip2は実質的には同じもので、どちらも似たように機能します。
たとえば、私たちが提供した最初の例に代わって、stuffディレクトリを圧縮するために、次のコマンドを実行します:
tar -cjvf archive.tar.bz2 stuffタールファイルを抽出する
アーカイブが作成されると、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」に置き換えてください。
これはtarコマンドの最も単純な使用法です。このコマンドには多くの追加オプションが含まれているため、すべてをここにリストすることはできません。詳細情報については、シェルでinfo tarコマンドを実行して、tarコマンドの詳細情報ページを表示してください。終了したらqキーを押して情報ページを終了します。また、tarのマニュアルをオンラインで読むこともできます。
グラフィカルなLinuxデスクトップを使用している場合、デスクトップに含まれているファイル圧縮ユーティリティやファイルマネージャーを使用して.tarファイルを作成または抽出することもできます。Windowsでは、無料の7-Zipユーティリティを使用して.tarアーカイブを抽出および作成できます。
Linuxコマンド | ||
ファイル | t | |
プロセス | A | |
ネットワーキング | netstat・ping・traceroute・ip・ss・whois・fail2ban・bmon・dig・finger・nmap・ftp・curl・wget・who・whoami・w・iptables・ssh-keygen・ufw・arping・firewalld |





