📝
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