Linuxのzipコマンドは、単一ファイルを圧縮できるだけでなく、複数ファイルやディレクトリをzip形式で圧縮ファイルにまとめられる便利なコマンドです。
しかし、エラーが発生することもあるため、扱いに困っている方もいるのではないでしょうか。
この記事では、Linuxのzipコマンドについて、使い方やメリット、注意点、よくあるエラーの解消方法などを詳しく解説していきます。すでにLinuxでzipコマンドを実施している方も、これから実施する方も参考になる内容となっています。
ぜひ最後までお読みいただき、Linuxのzipコマンドについて理解を深めてください。
目次
1.Linuxのzipコマンドとは?
Linuxのzipコマンドは、複数のファイルやディレクトリをzip形式の圧縮ファイルにまとめるためのコマンドです。WindowsやmacOSとも互換性が高く、異なる環境間でのファイル受け渡しに便利です。
zipは標準でインストールされていないLinuxのディストリビューションもあるため、必要に応じてパッケージマネージャで導入します。
ファイル容量の削減だけでなく、自動化スクリプトや定期バックアップとの連携にも活用され、フリーランスやITプロフェッショナルの業務効率化に役立つ重要なツールです。
2.Linuxのzipコマンドを利用する5つのメリット
Linuxでzipを活用する具体的なメリットについて、5つの観点から解説します。
標準コマンドで手軽に圧縮・解凍が可能
複数ファイルやディレクトリも柔軟に対応
他OSとの高い互換性でファイル共有がスムーズ
スクリプトや自動化との相性が良い
圧縮率の調整や暗号化にも対応可能
標準コマンドで手軽に圧縮・解凍が可能
zipコマンドは多くのLinuxディストリビューションで標準サポートされており、追加ツールの導入なく、すぐに利用可能です。構文もシンプルで、「zip ファイル名 対象ファイル」の形で使えるため、初心者でもすぐに覚えられます。
以下の例では、test.txtファイルをsample.zipに圧縮する操作を行うコマンドです。
zip sample.zip test.txt |
解凍もunzipコマンドで簡単に行えるため、GUIを使わずにファイル整理ができ、ターミナル操作に慣れたエンジニアには特に重宝されます。解凍コマンドは以下のとおりです。
unzip sample.zip |
この例では、zip形式で圧縮されたsample.zipを解凍しています。
複数ファイルやディレクトリも柔軟に対応
zipコマンドは、複数のファイルを一括で圧縮することやディレクトリ全体を再帰的に圧縮するなど、柔軟な使い方が可能です。
たとえば以下のように、ディレクトリ構造を保持したままアーカイブ化できます。
zip -r backup.zip ./data |
これにより、構成ファイルやログなどを丸ごと保存・共有する用途に適しており、管理業務の負担を軽減できます。
他OSとの高い互換性でファイル共有がスムーズ
zip形式はWindowsやmacOSでも標準対応しているため、OSを問わずにファイル共有が可能です。
Linuxで圧縮したファイルをWindows環境などでそのまま解凍できるのは大きなメリットで、取引先やチームメンバーとのデータ交換もスムーズに行えます。特にフリーランスや個人事業主にとって、環境依存のトラブルを避ける意味でもzipの採用は実用的といえるでしょう。
スクリプトや自動化との相性が良い
zipコマンドはすべてコマンドラインで操作できるため、シェルスクリプトや定期実行に組込みやすいのが特徴です。
たとえば、毎日決まった時間に特定のフォルダをzip形式で自動バックアップし、古いファイルを世代管理する、といった処理も簡単に実現できます。
そのため、手作業の手間を減らし、業務の標準化・自動化が可能になります。特に多忙なITエンジニアや個人事業主にとって、作業効率を大きく高められる便利な活用方法です。
圧縮率の調整や暗号化にも対応可能
zipコマンドでは、-0から-9までのオプションを使って圧縮率を自由に設定できます。
デフォルトは通常「-6」で、バランスの取れた圧縮率と速度を提供します。
たとえば、「-0」は圧縮なしで高速に処理したいとき、「-9」はできるだけファイルサイズを小さくしたいときに使います。用途に合わせて「速度重視」か「サイズ重視」かを選べるのが便利です。
さらに、「-e」または「--encrypt」オプションを使えばパスワード付きのzipファイルを作成できます。ただし、このzipの標準暗号化は比較的脆弱であるため、より高度なセキュリティが必要な場合はGPGなどの暗号化ツールとの併用が推奨されます。
機密情報や業務データを安全に送信・共有することが可能となり、ファイルの取り扱いにセキュリティが求められる現場でも、安心して使える圧縮ツールです。
関連記事
LinuxとWindowsの違いは?特徴やメリット・デメリットを知り選びましょう!
3.Linuxでzipコマンドを使う際の注意点3選
Linuxのzipコマンドは便利な一方で、使い方を誤ると圧縮効率の低下やファイル破損といった問題に直面することもあります。ここでは、zipコマンドを使う際の注意点を3つ解説します。
何回やっても容量は効率化出来ない
異なるOSでの互換性がない場合がある
サイズが多すぎる圧縮は失敗する場合がある
何回やっても容量は効率化出来ない
zipは、可逆圧縮といって、元のデータをそのまま復元できる安全な圧縮方式です。
ただし、すでに圧縮されているファイルをzipで再圧縮しても、サイズはほとんど変わりません。何度もzipをかけても意味がなく、かえって時間や処理が無駄になることもあります。
容量削減を目的とする場合は、「7z」などの圧縮率が高いツールを使ったり、使っていないファイルを削除したりするなどの工夫が必要です。
異なるOSでの互換性がない場合がある
zipファイルは基本的にWindows・Mac・Linuxなど複数のOSで使えますが、ファイル名の文字コードが違うと、解凍時に文字化けすることがあります。
特に日本語を含むファイル名は、Linuxで作ったzipファイルをWindowsで開いたときに「???」のように崩れてしまうことも少なくありません。ファイル名の文字化けを防ぐためにも、共有前にテストしておくことが重要です。
サイズが多すぎる圧縮は失敗する場合がある
数GB以上の大容量ファイルをzipで圧縮しようとすると、圧縮が途中で止まったり、エラーが出たりすることがあります。これはzipの仕様や、システムのメモリ不足が原因です。
大量データを扱う場合は、サイズ制限のない「zip64」に対応したツールを使うことや、splitコマンドなどで分割してから圧縮する方法がおすすめです。
さらに、自動化された処理の中で圧縮が失敗すると、ログも出力されず気づかないまま処理が進んでしまうことがあります。こうしたリスクを回避するために、スクリプトには圧縮処理の成否チェックを入れたり、ファイルサイズのしきい値を事前に設定したりするのが安全です。
関連記事
UNIXとLinuxの違いとは?共通点や選択基準などをわかりやすく解説
4.Linuxのzipファイルを圧縮する3つの方法
Linuxでファイルをzip形式に圧縮する方法は非常にシンプルで、用途に応じて柔軟に使い分けができます。ここでは、3つの圧縮方法を具体的なコマンドとともに解説していきます。
単一ファイルを圧縮する基本構文
複数ファイルをまとめて圧縮する
ディレクトリごとに圧縮する
単一ファイルを圧縮する基本構文
最も基本的な形式は zip アーカイブ名 ファイル名 です。たとえば以下のようにコマンドを入力すれば、sample.txtをtest.zipに圧縮できます。
zip test.zip sample.txt |
Linux初心者でも直感的に使いやすく、ちょっとしたファイル保存や転送時に役立ち、エンジニアのローカル作業から共有用ファイルの作成まで、幅広く活用されています。
複数ファイルをまとめて圧縮する
複数のファイルをまとめて一つのzipファイルにするには、以下のようにファイル名を並べて指定します。
zip archive.zip file1.txt file2.txt file3.txt |
また、ワイルドカード(例:*.log)を使えば、特定の拡張子を一括圧縮することも可能です。
zip logs.zip *.log |
大量のログやドキュメントを整理・送信する場面で特に役立つコマンドです。
ディレクトリごとに圧縮する
ディレクトリ全体を再帰的に圧縮するには、-rオプションを使って「zip -r アーカイブ名 ディレクトリ名」と指定します。
zip -r アーカイブ名.zip ディレクトリ名 |
たとえば以下のように入力するとproject フォルダ以下のすべてのファイル・サブディレクトリを含めたzipファイルが作成されます。
zip -r backup.zip ./project |
この方法は、プロジェクト一式を納品したり、作業フォルダを丸ごとバックアップしたりするときにとても便利です。ファイル構成をそのまま残した状態で保存・共有できるため、管理もスムーズになります。
5.Linuxでzipファイルを解凍する3つの方法
Linuxでzipファイルを解凍するには、主に unzip コマンドを使用します。ここでは、unzipコマンドの使い方について3つ解説します。
unzipコマンドの基本的な使い方
特定のファイルだけを解凍する方法
解凍時のよくあるエラーと対処法
unzipコマンドの基本的な使い方
unzipコマンドは、以下のように使用します。
unzip sample.zip |
このコマンドで、sample.zip の中身が今いるフォルダにそのまま展開されます。
また、もし解凍前に中身だけ確認したい場合は、「-i」を追加し以下のように入力します。
unzip -l sample.zip |
特定のファイルだけを解凍する方法
zipファイルの中から一部のファイルだけを取り出したい場合は、以下のように入力します。
unzip sample.zip document.txt |
これで sample.zip の中から document.txt だけを取り出せます。ログファイルや特定の設定ファイルだけを確認したい場合などに便利です。
解凍時のよくあるエラーと対処法
エンコーディングの違いによりファイル名が文字化けすることがあります。その場合は以下のように文字コードを指定して解凍することで解決できる場合があります。
unzip -O cp932 sample.zip |
この例では、文字コードとして「cp932」を指定しました。
また、パーミッションエラーが出た場合は sudo の使用やディレクトリ権限の確認が必要です。
sudoの使用例は以下のとおりです。
sudo unzip sample.zip |
これでroot権限で解凍できます。ただし、安易にsudoを使うのは危険な場合もあるので、必要性を確認してから使用しましょう。
ディレクトリ権限の確認方法は、以下のコマンドを入力することで確認できます。
ls -ld |
出力例
drwxr-xr-x 2 yourname yourgroup 4096 Mar 29 10:00 . |
このとき、yourname が自分のユーザー名で、w(書き込み権限)が含まれていればOKです。
6.Linuxのzipコマンドの便利なオプション
Linuxのzipコマンドには数多くの便利なオプションコマンドがあります。以下に代表的なオプションコマンドを表形式まとめました。ぜひとも参考にしてください。
オプション | 説明 | 使用例 | 主な用途 |
---|---|---|---|
-r | ディレクトリを再帰的に圧縮 | zip -r archive.zip dir/ | ディレクトリ全体の圧縮 |
-e | パスワード付きで圧縮(対話的にパスワード入力) | zip -e secure.zip file.txt | セキュリティ重視のファイル共有(ただし標準の暗号化は比較的脆弱) |
-9 | 圧縮率最大(サイズ重視) | zip -9 archive.zip file.txt | ファイルサイズを可能な限り小さくしたい時 |
-0 | 圧縮なし(速度重視) | zip -0 fast.zip file.txt | 高速処理やCPU負荷軽減が必要な時 |
-m | 圧縮後に元ファイルを削除 | zip -m archive.zip old.log | ディスク整理・ログローテーション向け |
-u | 既存zipに更新ファイルだけ追加 | zip -u archive.zip new.txt | 差分バックアップ・ファイル更新に便利 |
-x | 特定ファイルを除外 | zip archive.zip -x ".tmp" | 一部ファイルを除外したいとき |
-j | ディレクトリ構造を無視して圧縮 | zip -j archive.zip dir/* | フラットなファイル一覧で圧縮したいとき |
7.Linuxのzipコマンドを利用した業務活用例3選
Linuxのzipコマンドは、単なる圧縮ツールにとどまらず、日常の業務改善や運用効率化にも幅広く活用できます。ここでは、実際の業務シーンを想定した活用例を紹介し、作業を効率化するためのヒントを解説していきます。
定期バックアップの自動化にzipを活用する
大量ファイルの整理・アーカイブ作業の効率化
OSをまたいだファイル共有の安定運用
定期バックアップの自動化にzipを活用する
Linuxでは、zipコマンドとcron(定期実行ツール)を組み合わせることで、指定フォルダを毎日または毎週自動でバックアップする仕組みを構築できます。
たとえばログや設定ファイルを定期的に圧縮・保存しておけば、障害時の復旧にも役立ちます。
zip形式ならファイルサイズを抑えつつ、日付ごとにアーカイブを残す「世代管理」も簡単に行えるため、手間を減らして運用を効率化できます。
大量ファイルの整理・アーカイブ作業の効率化
業務で発生する月次レポートやプロジェクト資料など、多数のファイルを個別に管理するのは非効率です。zipコマンドを使えば、それらをひとまとめに圧縮でき、ファイル送付や保存の手間を大幅に削減できます。
ディレクトリごとの圧縮や、拡張子を指定した一括圧縮も可能なため、業務の整理整頓・納品準備がスムーズになり、作業の見落としも防止できます。
OSをまたいだファイル共有の安定運用
zip形式はWindows・macOS・Linuxのすべてで利用できるため、異なるOS間でのファイル共有に適しています。
ただし、文字コードの違いによる文字化けなどが発生する可能性があるため、日本語ファイル名を含む場合は英数字に変えるか、解凍時に文字コードを指定するなどの対策が必要です。
適切な運用ができれば、環境に依存しない安全で安定したファイル共有が実現できます。
8.Linuxでzip圧縮ができない場合の対処方法
Linuxのzipコマンドは便利ですが、環境や状況によっては正常に動作しないこともあります。ここでは、代表的なエラーとその解決方法を具体的に解説します。
zipコマンドがない(zip: command not found)の原因と解決
「Permission denied」など権限系エラーへの対処
容量制限や特殊文字によるトラブル
zipコマンドがない(zip: command not found)の原因と解決
Linux上でzip圧縮を行う際に以下のエラーが出る場合があります。
zip: command not found |
このエラーは、zipコマンドがLinux環境にインストールされていないことが原因です。
Debian系(UbuntuやLinux Mintなど)であれば、以下のコマンドで実行可能となります。
sudo apt install zip |
また、RedHat系(RHELやCentOS、Rocky Linuxなど)なら以下のコマンドを実行することで、エラーが解消されるはずです。
sudo yum install zip |
「Permission denied」など権限系エラーへの対処
圧縮対象ファイルや保存先ディレクトリに書き込み権限がない場合、以下のエラーが表示されるケースがあります。
Permission denied |
参考例として以下のエラーを解消する際の方法を解説します。この例では、「/var/log/syslog」にあるファイルを「backup.zip」として圧縮しようとして失敗しています。
zip backup.zip /var/log/syslog adding: var/log/syslog (Permission denied) |
解消するためにはまず権限を確認しましょう。対象のファイル「target.txt」へのアクセス権を見てみます。
ls -l target.txt |
出力例は以下のとおりです。「r」の文字が一つしかないため、圧縮したいファイルの読み取りができないことがわかります。
-rw------- 1 root root 1234 Mar 29 10:00 target.txt |
読み取り権限を付与するため、以下のコマンドを入力します。
sudo chmod +r target.txt |
アクセス権が以下のように変更できたため、zip圧縮が可能となりました。
-rw-r--r-- 1 root root 1234 Mar 29 10:00 target.txt |
他にも、一時的に管理者権限でzip圧縮する方法もあります。
sudo zip backup.zip /var/log/syslog |
どちらの場合も対象ファイルやディレクトリに権限がなかったため、zip圧縮ができないことでエラーとなっていました。特にログディレクトリなどで発生しやすいエラーです。このエラーが出力されたら権限を確認してみましょう。
容量制限や特殊文字によるトラブル
ファイルサイズが非常に大きい場合、古いzipツールでは処理に失敗することがあります。原因は、古いzip形式がサイズの上限を持っているためです。対処方法としては、zip64対応のツールで再実行するか、split で分割してから圧縮する方法が有効です。
また、ファイル名に空白や日本語が含まれると失敗することがあるため、引用符で囲むかリネームすると安全です。たとえば、以下のようなファイルを圧縮したい場合はエラーになる場合があります。
プロジェクト資料.txt My Document 2025.txt |
対処例としては以下のようにファイル名を””(ダブルクォーテーション)で囲むか、半角英数字に名前を変更しましょう。
zip archive.zip "My Document 2025.txt" |
関連記事
Linux入門|普段使いやサーバー構築、便利なコマンド、扱うメリットまでわかりやすく解説
Linux mintとは?インストール方法や推奨スペック・最新版22の日本語設定を徹底解説
9.まとめ
今回は、Linuxのzipコマンドについて、使うメリットや使い方、注意点などをお話ししました。さらには、便利なオプションコマンドやよくあるエラーの対処方法を解説しました。
Linuxのzipコマンドは標準で利用できるケースが多く、オプションコマンドがいくつもあるため、汎用性が高いコマンドです。しかし、上手くzipコマンドが動かずエラーになるケースもしばしば発生します。エラー解消のためにも、この記事を参考にしてみてください。
最後までお読みいただきありがとうございました。
本記事が皆様にとって少しでもお役に立てますと幸いです。
「フリーランスボード」は、数多くのフリーランスエージェントが掲載するITフリーランスエンジニア・ITフリーランス向けの案件・求人を一括検索できるサイトです。
開発環境、職種、単価、稼働形態、稼働日数など様々な条件から、あなたに最適なフリーランス案件・求人を簡単に見つけることができます。
単価アップを目指す方や、自分の得意なスキルを活かせる案件に参画したい方は、ぜひ「フリーランスボード」をご利用ください。