Linuxを使っていると、複数のファイルをまとめて圧縮して保存したい場面がよくあります。そんなときに便利なのが、zip
コマンドです。
本記事では、Linuxでzip
コマンドを使ってZIPファイルを作成する基本的な方法から、オプションの使い方、注意点、便利な活用例までを丁寧に解説します。初心者にもわかりやすく説明していますので、ぜひ参考にしてください。
zipコマンドとは?
zip
コマンドは、複数のファイルやディレクトリを1つのZIP形式のアーカイブファイルに圧縮するためのLinuxコマンドです。Windowsで一般的なZIPファイルと互換性があり、他のOSとのやり取りにも便利です。
Linuxディストリビューションによっては最初からインストールされていないこともありますが、簡単に導入することができます。
# Debian/Ubuntu系
sudo apt install zip
# RedHat/CentOS系
sudo yum install zip
インストールが完了したら、zip
コマンドが使えるようになります。
基本的なzipコマンドの使い方
最も基本的な使い方は以下のようになります。
zip アーカイブファイル名.zip ファイル1 ファイル2 ...
例:
zip archive.zip file1.txt file2.txt
このコマンドを実行すると、file1.txt
とfile2.txt
を圧縮したarchive.zip
が作成されます。
ディレクトリをまるごとZIPにする方法
フォルダ全体をZIP化したい場合は、-r
オプション(再帰的)を使います。
zip -r アーカイブファイル名.zip ディレクトリ名
例:
zip -r project.zip my_project/
これにより、my_project
フォルダ内のすべてのファイルとサブディレクトリを含むproject.zip
が作成されます。
圧縮レベルの指定
zip
コマンドでは圧縮のレベルを指定することもできます。
-0
:圧縮なし(ストアのみ)-9
:最高圧縮
例:
zip -9 -r archive.zip my_folder/
このコマンドは、最高圧縮レベルでフォルダをZIP化します。ただし、圧縮率が高いほど処理時間が長くなる点に注意が必要です。
ファイルを後からZIPに追加する
すでに作成されたZIPファイルに、あとからファイルを追加することも可能です。
zip 既存アーカイブ.zip 追加ファイル
例:
zip archive.zip newfile.txt
これにより、newfile.txt
がarchive.zip
に追加されます。
特定のファイルを除外する方法
特定のファイルを除いてZIP化したいときは、-x
オプションを使います。
zip -r archive.zip ディレクトリ名 -x 除外ファイルパターン
例:
zip -r archive.zip my_project/ -x "*.log"
このコマンドでは、.log
ファイルを除外してZIPファイルを作成します。
パスワード付きZIPファイルを作成する方法
セキュリティを重視したい場合は、-e
オプションでパスワードを設定できます。
zip -e archive.zip file.txt
このコマンドを実行すると、パスワードの入力を求められます。設定されたパスワードがないと解凍できなくなります。
ファイル名の文字化け対策
日本語のファイル名を含むZIPを作成すると、Windowsで解凍したときに文字化けすることがあります。これはエンコーディングの違いが原因です。
回避方法としては、-UN=UTF8
オプションを付けてUTF-8でファイル名を格納する方法があります。
zip -r -UN=UTF8 archive.zip my_folder/
ただし、Windowsの解凍ツールによってはUTF-8に対応していないものもあるため注意が必要です。
unzipコマンドで解凍確認もできる
作成したZIPファイルはunzip
コマンドで中身を確認できます。
unzip -l archive.zip
このコマンドでは、アーカイブに含まれるファイル一覧が表示されます。実際に解凍せずに内容をチェックしたいときに便利です。
実行ログを見やすくする方法
zip
コマンドは、標準出力にファイル処理の情報を出しますが、ログとしてファイルに保存したいときは以下のようにします。
zip -r archive.zip my_folder/ > zip.log
これで、出力内容がzip.log
ファイルに記録されます。
よくあるエラーと対処法
ファイルが見つからない(No such file or directory)
ファイル名やパスを間違えていないか確認しましょう。パスにスペースが含まれている場合は、クォートで囲む必要があります。
zip archive.zip "file with space.txt"
Permission denied
圧縮対象に読み取り権限があるか確認しましょう。必要に応じてsudo
を付けて実行することも検討します。
sudo zip -r archive.zip /protected_folder/
まとめ:zipコマンドを使いこなしてファイル管理を効率化しよう
Linuxでのファイル圧縮において、zip
コマンドは非常に便利なツールです。基本的な使い方に加えて、ディレクトリの圧縮、圧縮率の変更、ファイルの除外、パスワード設定など、多様なオプションを使いこなすことで、より柔軟にファイルを管理できます。
ZIP形式は、他のOSとの互換性も高く、メール添付やクラウドでの共有にも最適です。ぜひこの機会にzip
コマンドをマスターし、日常の作業に役立ててください。