概要
シェルスクリプトのみでMacとWindowsのファイルパスを相互変換する方法(Macユーザ向け)
の続きです。
Windowsユーザが多い職場などで、
エクセルなど資料のWindows用ファイルパスをスカイプなどで渡された際に、
さらにそれがsmbサーバなど共有フォルダにおいてあるファイルの場合、
わざわざsmb://から始まるmac用のファイルパスに変換し、
そしてFinderを開き、Command+Kで、「サーバへ接続」を表示し、
そこの入力フォームにパスを入力して開くような機会が多々あります(あります?)
その作業をshellscriptを利用して簡単にしようという試みです。
「WinからMacにファイルパスを変換」までは、ひとまず実用に耐えそうな方法を
上記のリンク記事に載せていますが、
さらに変換したファイルパスを自動でオープンする、
というところまでできるようにしたのでメモを残します。
なお、前回の記事にもありますが、Automatorを利用して実現する素晴らしい方法は
ググると見つかりますが、ここではAutomatorは使わずに実現します。
WinからMacへファイルパスを変換し、自動でオープンする方法
[手順]
1. スクリプトを用意する
# !/bin/bash
# クリップボードに格納されたファルパスをwinからmacへ置換して再びクリップボード>
へ格納
pbpaste | sed -E 's/\\+/smb:\/\//' | sed -E 's/\\/\//g' | tr -d '\n' | pbcopy
# 格納したファイルパスをopenコマンドで開く
VAR=`pbpaste`
open $VAR
解説
ファイルパスを変換してクリップボードに変換するまでは前回の記事と同じ
そこからさらにバッククオート
を利用して変数に格納
その変数を引数にしてopenコマンドで開くようにした
なお、一度変数に格納して、とかたぶんかなり回り道してると思う
2.用意したスクリプトをFinderなど、コンソール以外からも実行できるようにする
[.sh]を[.command]という拡張子に変更し、実行権限をつけることで実現できる
3.コマンド実行後に、コンソールを閉じる設定を行う
2.の方法ではデフォルトではコマンド実行時にコンソールが立ち上がり、
処理実行後もウィンドウは開いたままで邪魔になる
以下記事を参考に環境設定で自動で閉じるように設定が可能
ひとこと
標準出力を変数に格納するバッククオートとか、openコマンドとか普通に知らなかったので勉強になった
色々応用できそう
参考
シェルスクリプトのみでMacとWindowsのファイルパスを相互変換する方法(Macユーザ向け)
コマンド/open
標準出力のみを変数に設定する
Macでバッチ(command)ファイルを作る方法