zip / unzip コマンド入門 - Windowsとやり取りする圧縮・解凍の基本

zip / unzip コマンド入門 - Windowsとやり取りする圧縮・解凍の基本

この記事でわかること

結論: zipで固めて、unzipで開く。中身確認と日本語ファイル名の文字化け対処まで覚えれば、Windowsとのやり取りで困らない。

  • zip でファイルやディレクトリを .zip に圧縮 できる
  • unzip.zip を解凍 できる(Windowsで作られたzipもOK)
  • 解凍前に 中身を確認 する安全な手順がわかる
  • Windowsから来たzipの 日本語ファイル名の文字化け を直せる

対象読者:ファイル作成・基本コマンドを習得し、Windowsとファイルをやり取りしたい方

導入:Windowsから届いたzipファイル

結論: WindowsはZIP形式が標準。Linux側もzip / unzipを使えば、お互いに圧縮ファイルを送り合える。

リナ: ライニー先輩、Windowsを使ってる人から report.zip ってファイルをもらったんですけど、Linuxで開けますか?
ライニー先輩: もちろん開けるよ。Windowsで「右クリック → 圧縮」して作るのが、まさにこの .zip 形式。Linuxでは unzip コマンドで開いて、zip コマンドで作れるんだ。
リナ: あれ、前に習った tar とは違うんですか?
ライニー先輩: いい質問!tar.tar.gz)はLinux同士でよく使う形式。.zipWindowsが標準で開ける のが強み。だから「Windowsの人とやり取りするなら zip」と覚えておくといいよ。

1. そもそも zip / unzip とは?tar との違いは?

結論: zipは圧縮とまとめを1つで行う形式。Windowsが標準対応するため、相手がWindowsならzipが無難。

リナ: ziptar 、どっちを使えばいいか迷います。
ライニー先輩: ざっくりこう考えればいいよ。
形式 得意な場面 備考
.zip Windowsとやり取りする Windowsが標準で開ける
.tar.gz Linux / Mac 同士 権限や記号を正確に保てる

迷ったらこれ:相手が Windows なら zip、相手が Linux / Mac なら tar.gz。それだけ覚えれば最初は十分です。

リナ: なるほど、相手のOSで選べばいいんですね。
ライニー先輩: そう。ちなみに zip は「まとめる」と「圧縮する」を1つのコマンドでやってくれる。tar は本来「まとめるだけ」で、圧縮は gzip と組み合わせる——という違いもあるけど、最初は気にしなくて大丈夫。

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

結論: Ubuntuでは初期状態でzip / unzipが入っていないことがある。sudo apt install zip unzipで導入する。

リナ: さっそく使おうとしたら unzip: command not found って出ました...
ライニー先輩: あるある。Ubuntuだと最初は入っていないことがあるんだ。一度だけインストールすればOK。
$ sudo apt install zip unzip
リナ: zipunzip 、両方まとめて入れるんですね。
ライニー先輩: そう。zip(作る側)と unzip(開く側)は別パッケージだから、両方入れておくと安心だよ。インストール済みか確認したいときは which を使おう。
$ which zip unzip
/usr/bin/zip
/usr/bin/unzip

3. zip で圧縮する

結論: ファイルはzip 名前.zip ファイル、ディレクトリは-rを付けてzip -r 名前.zip ディレクトリで固める。

3-1. ファイルをまとめて圧縮

$ zip report.zip data.csv memo.txt
  adding: data.csv (deflated 62%)
  adding: memo.txt (deflated 20%)
リナ: deflated 62% って何ですか?
ライニー先輩: 「62%小さくなったよ」という意味。zipはこうして圧縮率も教えてくれる。最初に書く report.zip作られるファイル名、その後ろが 詰め込むファイル だよ。

3-2. ディレクトリを丸ごと圧縮(-r が必須)

$ zip -r project.zip project/

ここが最大の注意点:ディレクトリを圧縮するときは -r(recursive=中身も全部)が必須です。-r を付け忘れると、中身が入らず空に近いzipができてしまいます。

リナ: tar のときも「ディレクトリは特別扱い」でしたね。
ライニー先輩: そう、よく覚えてたね。zip では -r がその役割。ディレクトリを固めるときは反射的に -r を付ける、と体で覚えよう。

4. unzip で解凍する

結論: unzip 名前.zipでカレントディレクトリに展開。-dで展開先を指定すれば散らからず安全。

4-1. カレントディレクトリに展開(基本)

$ unzip report.zip
Archive:  report.zip
  inflating: data.csv
  inflating: memo.txt
リナ: inflating は「膨らませる」、つまり解凍中ってことですね。
ライニー先輩: その通り。圧縮が deflate(しぼませる)、解凍が inflate(膨らませる)。対になってるんだ。

4-2. 展開先を指定する(-d で事故防止)

$ unzip report.zip -d ~/work/report

散らかり防止のコツunzip は何も指定しないと 今いる場所 にファイルをばらまきます。中身がたくさんあるzipは、-d で専用ディレクトリを指定すると安全です。指定したディレクトリが無ければ自動で作ってくれます。

5. 解凍前に中身を確認する

結論: unzip -l 名前.zipで展開せずに中身一覧を確認できる。見知らぬzipは展開前に必ず中身を見る。

リナ: もらったzip、いきなり開くのはちょっと怖いです...
ライニー先輩: いい感覚だね。-l(list)を付ければ、展開せずに中身の一覧だけ 見られるよ。
$ unzip -l report.zip
Archive:  report.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
     1024  2026-06-05 10:00   data.csv
      256  2026-06-05 10:00   memo.txt
---------                     -------
     1280                     2 files

安全のために:知らない相手からのzipは、必ず unzip -l で中身を確認してから展開しましょう。/etc/... のような変なパスや、見覚えのないファイルが含まれていないかチェックする習慣が事故を防ぎます。

6. 日本語ファイル名が文字化けしたら

結論: Windows製zipの日本語名が文字化けしたら、Ubuntuではunzip -O CP932 名前.zipで正しく展開できる。

リナ: Windowsの人からもらったzipを開いたら、ファイル名が \203t\202@... みたいな謎の文字になってました!
ライニー先輩: それ、Windows相互運用で一番ハマるところ。Windowsは日本語ファイル名を CP932(Shift-JIS系) という文字コードでzipに保存することがあって、LinuxのUTF-8とずれて文字化けするんだ。

UbuntuやDebianの unzip には、文字コードを指定する -O オプションがあります。

$ unzip -O CP932 windows.zip

なぜ直るのか-O CP932 は「このzipのファイル名はCP932で書かれている」とunzipに教えるオプションです。これでLinux側が正しくUTF-8に変換し、日本語ファイル名がそのまま表示されます。展開前の確認にも使えます(unzip -O CP932 -l windows.zip)。

リナ: -O CP932 を足すだけで直りました!
ライニー先輩: -O はUbuntu / Debianの unzip に入っている便利オプション。環境によっては無いこともあるけど、Windowsとやり取りするなら覚えておいて損はないよ。

7. パスワード付きzipを扱う

結論: zip -eで暗号化zipを作り、解凍時はunzipがパスワードを尋ねる。zipの暗号は強くないため過信しない。

7-1. パスワードを付けて圧縮

$ zip -e secret.zip data.csv
Enter password:
Verify password:
  adding: data.csv (deflated 62%)

7-2. パスワード付きzipを解凍

$ unzip secret.zip

パスワードを尋ねられるので入力すると展開されます。

過信は禁物:従来のzip暗号は強度が高くありません。本当に機密性が必要なファイルは、zipのパスワードだけに頼らず、別の安全な方法(暗号化ツールや安全な転送経路)を検討しましょう。

ミニ課題で手を動かそう

結論: 圧縮 → 中身確認 → 展開先指定で解凍、の一連の流れを自分の手で通して定着させる。

ライニー先輩: じゃあ、今日の流れを通しでやってみよう。「固める → 中を見る → 安全に開く」の3ステップだよ。

課題1:ディレクトリを圧縮しよう

やることmydata というディレクトリを作って中にファイルを置き、mydata.zip に圧縮しよう。

ヒント:mkdirtouchzip -r を使います。

解答例:

$ mkdir mydata
$ touch mydata/a.txt mydata/b.txt
$ zip -r mydata.zip mydata/

課題2:中身を確認してから展開しよう

やること:作った mydata.zip の中身を一覧表示し、extract というディレクトリを展開先に指定して解凍しよう。

ヒント:unzip -l で確認、unzip -d で展開先を指定します。

解答例:

$ unzip -l mydata.zip
$ unzip mydata.zip -d extract
$ ls extract/mydata
a.txt  b.txt
リナ: 「固める → 中を見る → 開く」、できました!この流れなら安心です。
ライニー先輩: 完璧!この3ステップを習慣にすれば、どんなzipが来ても落ち着いて対応できるよ。

よくあるミスと対処法

結論: -r忘れ・command not found・展開先散らかり・文字化けの4つが定番。原因と対処をセットで押さえる。

ミス1:ディレクトリを圧縮したのに中身が空

リナ: zip backup.zip myfolder ってやったのに、中身がほとんど入ってませんでした。
ライニー先輩: -r の付け忘れだね。ディレクトリは zip -r backup.zip myfolder/ で固める。これは本当によくあるミスだよ。

ミス2:unzip: command not found

リナ: unzip を打ったら command not found でした。
ライニー先輩: パッケージが未インストール。sudo apt install unzip で入れよう。zip を使うなら zip パッケージも別途必要だよ。

ミス3:展開したらカレントが散らかった

リナ: たくさんファイルが入ったzipを開いたら、今いるフォルダがファイルだらけに...
ライニー先輩: unzip はデフォルトでカレントに展開するからね。次からは unzip xxx.zip -d 展開先/ で専用ディレクトリに出そう。展開前に unzip -l で「いくつ入っているか」を見るのもおすすめ。

ミス4:日本語ファイル名が文字化けする

リナ: Windows製zipのファイル名が文字化けします。
ライニー先輩: Ubuntu / Debianなら unzip -O CP932 xxx.zip で直ることが多いよ。Windowsが日本語名をCP932で保存しているのが原因だね。

今日のまとめ

結論: zip -rで固め、unzip -lで中を見て、unzip -dで安全に展開。文字化けは-O CP932。この型でWindows連携は十分。

  • 作るzip -r archive.zip dir/(ディレクトリは -r 必須)
  • 中身を見るunzip -l archive.zip(展開前に確認)
  • 開くunzip archive.zip -d 展開先/(散らからない)
  • 文字化けunzip -O CP932 windows.zip(Ubuntu / Debian)

次に読む