LoginSignup
0
0

macで"illegal byte sequence"を出さない自作unzipコマンド

Last updated at Posted at 2023-01-06

環境:MacOS Monterey, 2022

Macのunzipコマンド

最近よく使うTeamsアプリですが、ファイルを一括ダウンロードするとzipファイルでダウンロードされます。それをTerminalなどでunzip ~~.zipすると、illegal byte sequenceのエラーが出てしまいます。

ありがたいことにそれを解決するコマンド の記事はあります。しかし毎度忘れる頃にこの問題に直面してしまい、ストック先ページを見に行くのがわりと手間です…

自作コマンド

長いコマンドはaliasにしてしまえ、と思いましたが引数を2つ入力するのも面倒です。
ということでzshの自作コマンドをちょこっと書き、zipファイル名だけ入力すればいい方式にしました。

.zshrc
muz(){
    local fname

    # 引数は解凍したい ~~~.zip が入る
    fname=$1

    # 拡張子削除
    fname="${fname:r}"

    # 展開先作成
    eval "mkdir $fname"

    # 展開
    eval "ditto -V -x -k --sequesterRsrc --rsrc $1 $fname"
}

muz AAA.zipと入力するとAAAディレクトリが作成され、その中にzipの中身が展開されます。

muz = MacUnZipからつけたもので、コマンド名が衝突しないなら何でも良いです。
好きな名前をお付けください。

ちょっと細かい話

これはファイル名に日本語が入っていると起きる問題です。
Windows系で圧縮したファイルをMacで解凍、またはその逆のパターンで発生します。
TeamsアプリのサーバサイドがAzure等のWindows系のサーバで、今回は手元がMacだから起こった問題ですね。

参考元

Macのunzipで "illegal byte sequence "

蛇足
シェルスクリプトは得意じゃないので、最近流行りのChatGPT君に監修してもらいました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0