読者です 読者をやめる 読者になる 読者になる

nmtysh.log

Tech系のネタや日々の独り言などを書いています。

Ubuntu MATEで文字化けせずにzipファイルを展開するスクリプトを作りました

※この記事はQiitaにも投稿しています。

Ubuntu MATEのCaja(Nautilus)上でzipファイルを右クリックして「展開」すると文字化けします。MATEの書庫マネージャーであるEngrampa(file-roller)で読み込んでも文字化けします。
文字化けはJapanese Teamのリポジトリを有効にして ubuntu-defaults-ja をインストールしても解消されません。
これはMATEの依存関係でp7zip-fullがインストールされているためです。(Engrampaが依存しているので削除できません)
そしてfile-rollerは仕様としてunzipよりも7zのコマンドを優先して使用してしまうためです。
端末からunzipを行えば文字化けせずに展開できますが、毎回コマンドで展開するのは手間がかかるのでCajaから実行できるシェルスクリプトを作成しました。

0. 環境

1. スクリプトファイルを作成する

~/.config/caja/scripts に任意のファイル名でファイルを作成します。

#!/bin/bash

for arg
do
    basename=${arg##*/}
    extension=${basename##*.}
    case "${extension}" in
        zip)
            unzip -OCP932 "${arg}"
            ;;
        rar)
            unrar -x "${arg}"
            ;;
        7z)
            p7zip -d "${arg}"
            ;;
        *)
            # unknown file
            ;;
    esac
done
exit 0

2. 実行権限を付与する

作成したスクリプトファイルに実行権限を付与します。

$ chmod u+x ~/.config/caja/scripts/extract.sh

3. Cajaから実行する

展開したい圧縮ファイルを選んで(複数選択可)、コンテキストメニューの「スクリプト」→「(1で作ったスクリプト)」を選択してスクリプトを実行します。
これで文字化けせずにファイルを展開できます。

※rarを展開する場合は、 unrar-free ではなく unrar (non-free) のインストールをおすすめします。

X. 参考

X. 関連