LoginSignup
5
6

More than 1 year has passed since last update.

Automatorを使わずにWindowsのファイルパスをMacのパスに変換して自動で開く方法

Last updated at Posted at 2016-03-23

概要

シェルスクリプトのみで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]という拡張子に変更し、実行権限をつけることで実現できる

Macでバッチ(command)ファイルを作る方法

3.コマンド実行後に、コンソールを閉じる設定を行う

2.の方法ではデフォルトではコマンド実行時にコンソールが立ち上がり、
処理実行後もウィンドウは開いたままで邪魔になる
以下記事を参考に環境設定で自動で閉じるように設定が可能

ターミナルで exit したときにウィンドウを閉じる

ひとこと

標準出力を変数に格納するバッククオートとか、openコマンドとか普通に知らなかったので勉強になった
色々応用できそう

参考

シェルスクリプトのみでMacとWindowsのファイルパスを相互変換する方法(Macユーザ向け)
コマンド/open
標準出力のみを変数に設定する
Macでバッチ(command)ファイルを作る方法

5
6
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
5
6