MENU

zipとtar.gzの使い分け入門:サーバー作業で迷わない圧縮・解凍コマンド

zipとtar.gzの使い分け入門:サーバー作業で迷わない圧縮・解凍コマンド

zipとtar.gzの使い分け入門:サーバー作業で迷わない圧縮・解凍コマンド

サーバーでファイルをまとめて移動したいとき、まず覚えるべき選択肢は ziptar.gz です。結論から言うと、Windows利用者へ渡すならzip、Linuxサーバー内でバックアップや配布に使うならtar.gz が扱いやすい場面が多くなります。

zip は複数ファイルを1つにまとめながら圧縮できます。tar.gz は、まず tar で複数ファイルを1つのアーカイブにまとめ、その全体を gzip で圧縮する形式です。Web制作、WordPressのテーマ移動、ログ退避、デプロイ前のバックアップでは、この違いを知っているだけで作業ミスを減らせます。

この記事で分かることは次の通りです。

  • ziptar.gz の違い
  • サーバーでよく使う圧縮・解凍コマンド
  • 入力例と出力確認の見方
  • 権限、展開先、上書きで失敗しやすい点
  • 目的別の使い分け

対象環境は、Linux系サーバーのシェル作業を想定します。コマンド例は一般的な zipunzip、GNU tar、GNU gzip を前提にしています。macOSやレンタルサーバーではBSD系の tar や提供元独自の環境差があるため、実行前に tar --versionzip -v で確認してください。

目次

zipとtar.gzは何が違うのか

ziptar.gz の一番の違いは、「まとめる処理」と「圧縮する処理」が分かれているかどうかです。

zip は、ファイルをまとめる機能と圧縮する機能を1つの形式で持っています。WindowsやmacOSの標準機能、GUIの圧縮ソフトでも開きやすいため、制作会社、顧客、非エンジニアとの受け渡しに向いています。

一方、tar.gz は2段階です。

  • tar: 複数のファイルやディレクトリを1つにまとめる
  • gzip: その1つのファイルを圧縮する

GNU gzipのマニュアルでも、gzip は基本的に個々のファイルを .gz に圧縮するツールとして説明されており、複数ファイルをまとめる用途では tar と組み合わせます。ここを混同すると、「gzip でフォルダを丸ごと圧縮できない」というつまずきにつながります。

ここがポイント: zip は単体で「まとめる+圧縮」、tar.gz は「tarでまとめる+gzipで圧縮」です。

サーバー作業ではどちらを選ぶべきか

選び方は、圧縮率だけで決めないほうが実務では安全です。誰が開くのか、どこで展開するのか、権限やパスを保ちたいのかで変わります。

zipが向いている場面

zip は、受け渡し相手がサーバーに慣れていないときに強い形式です。

例えば、制作中の静的ファイル一式を顧客へ渡す、Windows利用者から画像素材を受け取る、WordPressのアップロード用素材をまとめる、といった場面では zip が扱いやすくなります。

主な用途は次の通りです。

  • WindowsやmacOSの利用者へファイルを渡す
  • GUIツールで中身を確認してもらう
  • 画像、PDF、HTML、CSS、JavaScriptをまとめる
  • サーバー上で一時的に展開して確認する

ただし、Unix系の権限や所有者情報を厳密に保ちたい作業では注意が必要です。共有用には便利ですが、サーバー内の完全な復元を目的にするなら tar.gz のほうが合う場合があります。

tar.gzが向いている場面

tar.gz は、Linuxサーバー同士の移動やバックアップでよく使われます。ディレクトリ構造をまとめて扱いやすく、コマンドラインだけで作成、一覧確認、展開まで進められます。

よくある用途は次の通りです。

  • WordPressテーマやプラグインの退避
  • public_html 配下の一部バックアップ
  • ログファイルの保管
  • デプロイ前のディレクトリ丸ごと保存
  • サーバー間でのファイル転送

GNU tarは gzipbzip2xzzstd など複数の圧縮方式を扱えます。.tar.gz では -z オプションで gzip を使うのが基本です。

基本コマンド:作成、一覧確認、解凍

圧縮ファイルは、作る前よりも「展開前に中身を見る」習慣が大切です。意図しない絶対パスや余計な親ディレクトリが入っていると、解凍時に作業場所を汚します。

zipを作る

assets ディレクトリを assets.zip にまとめる例です。

zip -r assets.zip assets/

-r は再帰的に処理する指定です。ディレクトリ配下のファイルも含めたい場合に使います。

入力例の構成は次のように考えます。

assets/
  css/style.css
  js/app.js
  images/logo.png

作成後は、中身を確認します。

unzip -l assets.zip

出力例は環境によって少し変わりますが、次のようにファイル一覧が見えます。

Archive:  assets.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
      128  2026-07-08 10:00   assets/css/style.css
      256  2026-07-08 10:00   assets/js/app.js
     2048  2026-07-08 10:00   assets/images/logo.png

zipを解凍する

展開先を指定するなら -d を使います。

unzip assets.zip -d /tmp/check-assets

展開先を指定しないと、現在のディレクトリに展開されます。サーバー作業では、いきなり本番ディレクトリで解凍せず、まず /tmp や作業用ディレクトリで中身を確認すると安全です。

tar.gzを作る

site-backup ディレクトリを site-backup.tar.gz にする例です。

tar -czf site-backup.tar.gz site-backup/

オプションの意味は次の通りです。

  • -c: 新しいアーカイブを作成する
  • -z: gzipで圧縮する
  • -f: 出力ファイル名を指定する

GNU tarでは、ファイル名の拡張子から圧縮方式を選ぶ -a も使えます。

tar -caf site-backup.tar.gz site-backup/

ただし、初心者のうちは tar -czf のように圧縮方式を明示したほうが、コマンドの意味を追いやすいです。

tar.gzの中身を見る

展開前に一覧を確認します。

tar -tzf site-backup.tar.gz

出力例です。

site-backup/
site-backup/index.html
site-backup/wp-content/themes/sample/style.css
site-backup/logs/access.log

tar -tf site-backup.tar.gz だけで読める環境もあります。GNU tarは圧縮形式を自動認識できるためです。ただし、パイプから読む場合などは -z が必要になることがあります。

tar.gzを解凍する

作業用ディレクトリへ展開します。

mkdir -p /tmp/check-site
tar -xzf site-backup.tar.gz -C /tmp/check-site

オプションの意味は次の通りです。

  • -x: 展開する
  • -z: gzipを通して読む
  • -f: 入力ファイル名を指定する
  • -C: 展開先ディレクトリを指定する

-C の展開先ディレクトリは事前に存在している必要があります。存在しない場所を指定すると失敗します。

実務でよくある使いどころ

圧縮・解凍は単なるファイル操作ではなく、作業前後の戻しやすさを作るための手段です。

WordPressテーマを更新前に退避する

テーマディレクトリを更新前に保存する例です。

cd /var/www/example.com/wp-content/themes
tar -czf mytheme-20260708.tar.gz mytheme/

中身を確認します。

tar -tzf mytheme-20260708.tar.gz | head

ここで mytheme/ から始まっていれば、展開時にもテーマディレクトリ単位で戻しやすくなります。/var/www/... のような絶対パスが入っていないかも確認してください。

ログを日付つきで圧縮する

アクセスログやエラーログは、そのまま置くと容量を圧迫します。古いログを退避するなら、日付をファイル名に入れると後で探しやすくなります。

tar -czf logs-20260708.tar.gz logs/

圧縮後にサイズを見る例です。

ls -lh logs-20260708.tar.gz

gzip -l を使うと、gzipファイルの圧縮サイズや展開後サイズを確認できます。

gzip -l logs-20260708.tar.gz

zipで納品用ファイルを作る

HTML一式を相手へ渡す場合は、zipのほうが開きやすいことがあります。

zip -r deliverables.zip index.html css/ js/ images/

確認します。

unzip -l deliverables.zip

相手がWindowsで開く前提なら、ファイル名の文字コードや日本語ファイル名にも注意します。文字化けが心配な場合は、英数字中心のファイル名に寄せるのが無難です。

よくある失敗と対処

圧縮・解凍の失敗は、コマンドそのものよりも「どこで実行したか」「どこに展開したか」で起きます。

失敗1:現在の場所に大量展開してしまう

unzip archive.ziptar -xzf archive.tar.gz は、基本的に現在のディレクトリへ展開します。

本番ディレクトリで実行すると、想定外のファイルが混ざることがあります。先に中身を見て、展開先を指定しましょう。

unzip -l archive.zip
unzip archive.zip -d /tmp/check-archive
tar -tzf archive.tar.gz
tar -xzf archive.tar.gz -C /tmp/check-archive

失敗2:tar.gzをあとから更新しようとする

GNU tarのマニュアルでは、圧縮済みアーカイブには更新、削除、追記などの制限があると説明されています。つまり、archive.tar.gz にあとから1ファイルだけ足す、という運用は避けたほうがよいです。

必要な場合は、元ディレクトリから作り直します。

tar -czf site-backup.tar.gz site-backup/

差分を頻繁に扱いたいなら、圧縮ファイルを作るより rsync やバックアップツールを検討するほうが運用しやすくなります。

失敗3:gzipでディレクトリを圧縮しようとする

gzip は、複数ファイルを1つのアーカイブにまとめるツールではありません。ディレクトリを丸ごと保存したいなら tar と組み合わせます。

NG例です。

gzip site-backup/

改善例です。

tar -czf site-backup.tar.gz site-backup/

失敗4:権限や所有者を戻せる前提で作業する

サーバー移行や復旧では、ファイルの所有者、グループ、パーミッションが重要です。ただし、一般ユーザー権限で展開した場合、所有者情報を完全には戻せないことがあります。

確認するコマンドは次の通りです。

ls -la

WordPressでは、PHPプロセスがファイルを書き込めるかどうかが問題になります。展開後に管理画面から更新できない、画像をアップロードできない、といった症状が出る場合は、圧縮形式だけでなく所有者と権限を確認してください。

目的別の使い分け

迷ったときは、次の基準で選ぶと判断しやすくなります。

  • 相手に渡すファイル: zip
  • WindowsやmacOSで開いてもらう: zip
  • Linuxサーバー内のバックアップ: tar.gz
  • ディレクトリ構造ごと保管する: tar.gz
  • 展開前に一覧確認したい: ziptar.gz も可能
  • 差分同期をしたい: rsync など別手段を検討

ziptar.gz のどちらが常に正解、という話ではありません。開く人と戻す場所が決まると、選ぶ形式も決まります。

Web制作の現場では、顧客やデザイナーとの受け渡しは zip、サーバー上の退避や移行は tar.gz と分けるだけでも、作業手順がかなり整理されます。

作業前チェックリスト

最後に、実行前に確認したい項目をまとめます。

  • 圧縮対象のディレクトリに移動しているか
  • 余計な親ディレクトリを含めていないか
  • 展開前に unzip -l または tar -t で中身を見たか
  • 展開先を -d-C で指定したか
  • 本番ディレクトリではなく作業用ディレクトリで試したか
  • 日本語ファイル名や空白入りファイル名が混ざっていないか
  • 展開後に所有者、権限、ファイルサイズを確認したか

次に見るべき分岐点は、単発の受け渡しなのか、繰り返すバックアップ作業なのかです。単発なら ziptar.gz の手作業で十分ですが、毎日・毎週の退避なら、日付つきファイル名、保存世代数、失敗時の通知まで含めてスクリプト化する段階に入ります。

参照リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次