ふつうの Zip ファイルであれば拡張子が .zip であり、Finder からダブルクリックすれば関連付けられたアーカイヴ展開ツールが起動してフォルダ展開してくれるだろう。ほなけど EPUB ファイルは拡張子 .epub であり、ファイルをダブルクリックしたところで EPUB 閲覧アプリケーション等がインストールされていればそれが起動し、インストールされていなければどのアプリケーションを用いてファイルを開くかを尋ねてくるダイアログ等が表示されるだけ。
ほなけん、EPUB ファイルを展開したい場合は、
- あらかじめアーカイヴ展開ツールの GUI を起動させ、そこへ EPUB ファイルを読み込ませる
- EPUB ファイルの拡張子を .zip に変更してからダブルクリックでアーカイヴ展開ツールを起動する
$ unzip <epubfile.epub>等のコマンドライン操作を行う
めんどくさい。
いちいちこんなことをやるのはめんどくさいけん、Automator を使って EPUB をフォルダに展開するサービスを作る。
Automator を起動し、新規作成のダイアログで「サービス」を選ぶ。「"サービス"は、次の選択項目を受け取ります」には「ファイルまたはフォルダ」を、「検索対象」には「Finder」を選択する。
用いるアクションは「シェルスクリプトを実行」のみ。「シェル」には「/bin/bash」を選択して、以下のようなシェルスクリプトを入力する。
for filePath in "$@"
do
workingDir=${filePath%/*}
filename=${filePath##*/}
extension=${filename##*.}
filenameWithoutExtension=${filename%.*}
cd "$workingDir"
if [ $extension != epub ] ; then continue; fi
if [ -e "$filenameWithoutExtension" ] ; then continue; fi
mkdir "$filenameWithoutExtension"
unzip "$filename" -d "$filenameWithoutExtension"
done これで完成。かんたんですね。保存すると
~/Library/Services に保存される。Finder から EPUB ファイルを選択してコンテキストメニュー(右クリック or Control + クリック)かアプリケーションメニューの「サービス」に保存した Automator ワークフローがあるけん、それを選択すればフォルダに展開してくれる。仕様は以下の通り。
- EPUB ファイルがあるフォルダに EPUB ファイルと同名のフォルダを作り、そこに中身を展開する
- すでに同名のフォルダがある場合はなにもしない
- 拡張子 .epub 以外のファイルからこのサービスを呼び出してもなにもしない
- 複数の EPUB ファイルを一気に展開できる
0 comments:
コメントを投稿