LoginSignup
2
2

More than 5 years have passed since last update.

\ なパスを / にするワンライナー・エイリアス

Last updated at Posted at 2015-03-31

Windows の書式で書かれているパスを Linux, OS X (≒ *nix) っぽいパスに変えるワンライナー。

自分は SMB のファイルサーバのパスを Unix 上でマウントしてアクセスするのに使っている。

手軽だけど危険な方法

tr コマンドを使う。

$ tr \\ / <<< '\\fooserver\bar\buzz'
//fooserver/bar/buzz
$

この方法は自分の知る限り最も手軽。
しかし、 このページ にある通り、
ファイルシステムによって使用可能なファイル名のルールとエスケープの方法は異なるので、
置換後に意図していないリソースを指してしまう可能性がある。

でも、たいていのファイル名では問題ないので、覚えて損はない。

それなりに信頼できる方法

Python 3 の pathlib を使った例。

$ python3 -c 'import pathlib;print(pathlib.PureWindowsPath(input()).as_posix())' <<< '\\fooserver\bar\buzz'
//fooserver/bar/buzz
$

ただし、 Python 3.4 以降もしくは pathlib パッケージがインストール済みでなければならないので、
手軽ではないかもしれない。

エイリアス

なので、それぞれシェルのエイリアスは次のようになる。

alias path_wintounix="tr \\ /"
alias path_wintounix="python3 -c 'import pathlib;print(pathlib.PureWindowsPath(input()).as_posix())'"
$ path_wintounix <<< '\\fooserver\bar\buzz'
//fooserver/bar/buzz
$

余談

Windows は / 区切りのパスも開けるので、逆の変換はあまり問題になることはなさそう。

alias path_unixtowin="tr / \\"
2
2
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
2
2