Ubuntuでzip・tar.gzを解凍・圧縮するコマンド完全ガイド

コマンド

動作確認環境

本記事のコマンドは Ubuntu 24.04 LTS(Docker公式イメージ ubuntu:24.04)で実際に実行して確認しています。Ubuntu 22.04 でも基本的な使い方は同じですが、パッケージバージョンが異なります。

Ubuntuでファイルをまとめて圧縮したり、受け取った .zip.tar.gz を解凍したりする場面は日常的にあります。結論から言うと、zip / unzip コマンドはデフォルトでインストールされておらず、apt install が必要です。tar コマンドはあらかじめ入っています。

本記事では実際に Ubuntu 24.04 で動かした実行結果とともに、zip・tar.gz それぞれの圧縮・解凍コマンドを解説します。

この記事のポイント

  • zip / unzip は Ubuntu 24.04 にデフォルトで入っていない(apt install zip unzip が必要)
  • zip 圧縮は zip -r archive.zip ディレクトリ名/、解凍は unzip archive.zip
  • tar.gz 圧縮は tar -czf archive.tar.gz ディレクトリ名/、解凍は tar -xzf archive.tar.gz
  • tar.gz は zip より圧縮率が高い傾向がある(実測で同ファイルを zip:734バイト vs tar.gz:269バイト)
  • Ubuntu 24.04 の zip パッケージバージョン: 3.0-13ubuntu0.2(実測)

目次

  1. zip/unzip をインストールする
  2. zipで圧縮する
  3. zipを解凍する
  4. tar.gz で圧縮する
  5. tar.gz を解凍する
  6. tar.bz2 / tar.xz の圧縮・解凍
  7. Ubuntu 22.04 vs 24.04 バージョン比較
  8. よくあるエラーと解決策
  9. まとめ

zip/unzip をインストールする

Ubuntu 24.04 LTS では zipunzip はデフォルトでインストールされていません。まず apt install でインストールしてから使います。




ubuntu@linuxlab: ~
$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Reading package lists… Done
$ sudo apt install -y zip unzip
The following NEW packages will be installed:
unzip zip
After this operation, 1048 kB of additional disk space will be used.
Setting up unzip (6.0-28ubuntu4.1) …
Setting up zip (3.0-13ubuntu0.2) …

インストールが完了したら、バージョンを確認してみましょう。




ubuntu@linuxlab: ~
$ zip –version 2>&1 | head -2
Copyright (c) 1990-2008 Info-ZIP – Type ‘zip “-L”‘ for software license.
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
$ unzip -v 2>&1 | head -1
UnZip 6.00 of 20 April 2009, by Debian.
Ubuntu 24.04 で zip 圧縮・解凍を実行(実測)
Ubuntu 24.04 で zip 圧縮・解凍を実行(実測)

tar コマンドは Ubuntu 24.04 に最初から入っています。




ubuntu@linuxlab: ~
$ tar –version | head -1
tar (GNU tar) 1.35
$ gzip –version | head -1
gzip 1.12

zipで圧縮する

手順1:単一ファイルを圧縮する

単一のファイルを zip に圧縮するには以下のコマンドを使います。




ubuntu@linuxlab: ~
$ zip archive.zip hello.txt
adding: hello.txt (stored 0%)

手順2:ディレクトリごと圧縮する(-r オプション)

ディレクトリをまるごと圧縮する場合は -r(recursive)オプションが必要です。-r を付けないとディレクトリの中身が含まれません




ubuntu@linuxlab: ~
$ zip -r archive.zip testdir/
adding: testdir/ (stored 0%)
adding: testdir/hello.txt (stored 0%)
adding: testdir/version.txt (stored 0%)
adding: testdir/readme.txt (stored 0%)
$ ls -lh archive.zip
-rw-r–r– 1 user user 734 Jun 13 09:29 archive.zip

注意:-r を忘れた場合

zip archive.zip testdir のように -r なしでディレクトリを指定すると、「zip warning: name not matched」と表示されるか、空のエントリが作られるだけです。ディレクトリを圧縮するときは必ず -r を付けてください。

手順3:zip の中身を確認する

zip ファイルを解凍せずに中身を確認するには unzip -l を使います。




ubuntu@linuxlab: ~
$ unzip -l archive.zip
Archive: archive.zip
Length Date Time Name
——— ———- —– —-
0 2026-06-13 09:29 testdir/
14 2026-06-13 09:29 testdir/hello.txt
17 2026-06-13 09:29 testdir/version.txt
45 2026-06-13 09:29 testdir/readme.txt
——— ——-
76 4 files

zipを解凍する

手順1:カレントディレクトリに解凍する




ubuntu@linuxlab: ~
$ unzip archive.zip
Archive: archive.zip
creating: testdir/
extracting: testdir/hello.txt
extracting: testdir/version.txt
extracting: testdir/readme.txt

手順2:指定ディレクトリに解凍する(-d オプション)

解凍先のディレクトリを指定するには -d オプションを使います。既存のファイルを上書きしたい場合は -o オプションを追加します。




ubuntu@linuxlab: ~
$ unzip -o archive.zip -d /tmp/extracted/
Archive: archive.zip
creating: /tmp/extracted/testdir/
extracting: /tmp/extracted/testdir/hello.txt
extracting: /tmp/extracted/testdir/version.txt
extracting: /tmp/extracted/testdir/readme.txt

tar.gz で圧縮する

tar コマンドは Ubuntu 24.04 に最初から入っているので、インストール不要です。.tar.gz 形式は Linux サーバーでの標準的な圧縮形式で、Windows の zip よりも圧縮率が高くなりやすいです。

著者アイコン
著者アイコン

tar.gz の「tar」はファイルをひとまとめにする部分、「gz」は gzip で圧縮する部分です。もともと別々のコマンドだったものを -z オプションで一括処理できるようになりました。

手順1:ディレクトリを tar.gz に圧縮する

-czf オプションを使います。c(create)・z(gzip)・f(filename)の頭文字です。




ubuntu@linuxlab: ~
$ tar -czf archive.tar.gz testdir/
$ ls -lh archive.tar.gz
-rw-r–r– 1 user user 269 Jun 13 09:29 archive.tar.gz

同じ内容を zip で圧縮すると 734バイトでしたが、tar.gz では 269バイトになりました(Ubuntu 24.04 で実測)。これは tar.gz の gzip 圧縮アルゴリズムが zip(deflate)より効率よく圧縮できる場合があるためです。

手順2:tar.gz の中身を確認する(解凍せずに)




ubuntu@linuxlab: ~
$ tar -tzf archive.tar.gz
testdir/
testdir/hello.txt
testdir/version.txt
testdir/readme.txt
Ubuntu 24.04 で tar.gz 圧縮・解凍を実行(実測)
Ubuntu 24.04 で tar.gz 圧縮・解凍を実行(実測)

tar.gz を解凍する

手順1:カレントディレクトリに解凍する

-xzf オプションを使います。x(extract)・z(gzip)・f(filename)の頭文字です。




ubuntu@linuxlab: ~
$ tar -xzf archive.tar.gz
$ ls testdir/
hello.txt readme.txt version.txt

手順2:指定ディレクトリに解凍する(-C オプション)

解凍先を指定するには -C(大文字)オプションを使います。解凍先ディレクトリは事前に作成しておく必要があります。




ubuntu@linuxlab: ~
$ mkdir -p /tmp/extracted_tar
$ tar -xzf archive.tar.gz -C /tmp/extracted_tar/
$ ls /tmp/extracted_tar/testdir/
hello.txt readme.txt version.txt

tar コマンドのオプション早見表

  • -c:アーカイブを作成(create)
  • -x:アーカイブを展開(extract)
  • -t:中身を一覧表示(list)
  • -z:gzip 形式(.tar.gz / .tgz)
  • -j:bzip2 形式(.tar.bz2)
  • -J(大文字):xz 形式(.tar.xz)
  • -f:ファイル名を指定(filename)
  • -C(大文字):解凍先ディレクトリを指定
  • -v:詳細表示(verbose)

tar.bz2 / tar.xz の圧縮・解凍

Ubuntu 24.04 では bzip2xz-utils はデフォルトでインストールされていないため、使いたい場合は先にインストールが必要です。




ubuntu@linuxlab: ~
$ sudo apt install -y bzip2 xz-utils
Setting up bzip2 …
Setting up xz-utils …
$ tar -cjf archive.tar.bz2 testdir/
# bzip2 圧縮(-j オプション)
$ tar -cJf archive.tar.xz testdir/
# xz 圧縮(-J オプション・大文字)
$ tar -xjf archive.tar.bz2 -C /tmp/extracted_bz2/
$ tar -xJf archive.tar.xz -C /tmp/extracted_xz/

Ubuntu 22.04 vs 24.04 バージョン比較

Ubuntu 22.04 と 24.04 で zip/tar 関連パッケージのバージョンを実際に Docker コンテナで確認しました。

Ubuntu 22.04 vs 24.04 zip/unzip/tar バージョン比較(実測)
Ubuntu 22.04 vs 24.04 zip/unzip/tar バージョン比較(実測)
パッケージ Ubuntu 22.04 LTS Ubuntu 24.04 LTS
zip 3.0-12build2 3.0-13ubuntu0.2
unzip 6.0-26ubuntu3.2 6.0-28ubuntu4.1
tar GNU tar 1.34 GNU tar 1.35
gzip 1.10 1.12
Zip コマンドバージョン Zip 3.0 Zip 3.0(同じ)
UnZip コマンドバージョン UnZip 6.00 UnZip 6.00(同じ)

zip/unzip の実際のコマンドバージョン(Zip 3.0 / UnZip 6.00)は 22.04 と 24.04 で変わっていませんが、Ubuntu パッケージのビルド番号やセキュリティパッチは更新されています。コマンドの使い方は両バージョンで同じです。

よくあるエラーと解決策

①「unzip: command not found」と表示される

Ubuntu 24.04 に unzip はデフォルトでインストールされていません。




ubuntu@linuxlab: ~
$ unzip archive.zip
Command ‘unzip’ not found, but can be installed with:
sudo apt install unzip
$ sudo apt install -y unzip
Setting up unzip (6.0-28ubuntu4.1) …

②「cannot find or open nonexistent.zip」と表示される

存在しないファイルを解凍しようとすると以下のエラーが出ます。ファイルパスやファイル名が正しいか確認してください。




ubuntu@linuxlab: ~
$ unzip nonexistent.zip
Archive: nonexistent.zip
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive.

③「tar: nonexistent.tar.gz: Cannot open」と表示される




ubuntu@linuxlab: ~
$ tar -xzf nonexistent.tar.gz
tar: nonexistent.tar.gz: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now

④ zip でディレクトリを圧縮したのにファイルが入っていない

-r オプションを忘れている可能性があります。ディレクトリを圧縮するときは必ず zip -r を使ってください。




ubuntu@linuxlab: ~
$ zip archive.zip testdir
zip warning: name not matched: testdir
# -r なしではディレクトリの中身が入らない
$ zip -r archive.zip testdir/
adding: testdir/ (stored 0%)
adding: testdir/hello.txt (stored 0%)
# -r を付けることで中身が含まれる

まとめ

Ubuntu でよく使う圧縮・解凍コマンドをまとめると以下の通りです(ubuntu:24.04 で実際に確認)。

操作 形式 コマンド
圧縮 .zip zip -r archive.zip ディレクトリ/
解凍 .zip unzip archive.zip -d 出力先/
中身確認 .zip unzip -l archive.zip
圧縮 .tar.gz tar -czf archive.tar.gz ディレクトリ/
解凍 .tar.gz tar -xzf archive.tar.gz -C 出力先/
中身確認 .tar.gz tar -tzf archive.tar.gz
圧縮 .tar.bz2 tar -cjf archive.tar.bz2 ディレクトリ/
解凍 .tar.bz2 tar -xjf archive.tar.bz2 -C 出力先/
  • zip / unzip は Ubuntu 24.04 にデフォルトで入っていない。sudo apt install zip unzip でインストールする
  • ディレクトリを zip 圧縮するときは -r オプションが必須
  • tar.gz の解凍先を指定するには -C(大文字)オプションを使う
  • Ubuntu 24.04 実測: zip(3.0-13ubuntu0.2)、unzip(6.0-28ubuntu4.1)、tar(GNU 1.35)

本格的に Linux サーバーを運用するなら、次のVPS比較記事も参考にしてみてください。

コメント

タイトルとURLをコピーしました