Help us understand the problem. What is going on with this article?

【Unix】zip解凍時で「error: cannot create <ファイル名> (error code: 50)」が出た場合の原因と対処方法

More than 1 year has passed since last update.

概要

zip解凍すると

error: cannot create <ファイル名>
Protocol error
(error code: 50)

というエラーが出る事がある。

エラーコードはファイル容量が足りないときに出るエラーなのだが、容量が足りてる場合も出るので当てにならない。

原因1 - パーミッションエラー

よくある。ちゃんと設定しよう。

原因2 - 文字コード

Windowsからアップされたファイル名はShift-Jisなのだがサーバー側のファイルシステムとかがUTF8だと展開できないケースがある(一応文字化けして展開できるケースもある)。
んで困ったことにデフォルトのunzipはShift-Jis未対応な為どんなに頑張っても文字化けは直せない。

「unzip 6.10b BATA」ってやつだと対応してるらしい。試してないけど。

https://sourceforge.net/projects/infozip/files/unreleased%20Betas/UnZip%20betas/

の「unzip610b.zip」ってやつを落としてmakefileが入ってるからmakeすればunzipが出来るので、それを適当な場所に配置する。
デフォルトのunzipと差し替えるのは既存のシステムが動かなくなるケースを考慮してやめたほうが良いと思う。

原因3 - マウントされてるファイルシステムの問題

Vagrantとかその他外部のファイルシステムをマウントしている場合、そのマウントしているファイルシステム上でunzipすると(error code: 50)で解凍できないケースがある。
この場合マウントしてるファイルシステム上で解凍せずローカルで解凍すれば良い。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away