📝

unzipで File name too long

に公開

環境

Windows11
WSL2

事の経緯

紙ベースで保管していたものをまとめて業者にスキャンしてデジタルデータにしてもらった。
zipファイルで納品されたので嬉々としてunzipで次々と解凍していたところ、

error:  cannot create とても長い日本語のファイル名.pdf File name too long

ファイル名つけたの業者なんだが…面倒すぎる…

仕方がないのでどうにか解凍する方法を試行錯誤。

解決法

まず、7zipでzipの中身を一度確認。

7z l mydata.zip

日本語のファイル名a.pdf
日本語のファイル名b.pdf
日本語のファイル名c.pdf
とても長い日本語のファイル名.pdf
日本語のファイル名d.pdf

なぜ業者はファイル名をそんなに長くしたんだ。
文字数指定をする等、しっかり指示しなかったことが悔やまれる。

7zでrename。ついでに日本語が気持ち悪いのでzip内のファイル名は全て英語に変更。

7z rn mydata.zip \
"日本語のファイル名a.pdf" "aaa.pdf" \
"日本語のファイル名b.pdf" "bbb.pdf" \
"日本語のファイル名c.pdf" "ccc.pdf" \
"とても長い日本語のファイル名.pdf" "xxx.pdf" \
"日本語のファイル名d.pdf" "ddd.pdf" \

中身を確認。

7z l mydata.zip
aaa.pdf
bbb.pdf
ccc.pdf
xxx.pdf
ddd.pdf

okなので改めてunzipする。

unzip -O cp932 mydata.zip

なお、-O cp932とはwindowsのエンコードでよく使用されるShift_JISを指定している。
MacやLinux系はutf-8。
これを指定しないとwindowsでは文字化け必至なので注意。

Discussion