※この記事は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. 環境
- Ubuntu MATE 16.04 LTS
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) のインストールをおすすめします。