WSLでWindowsのフォルダにすぐアクセスできるようにする方法

はじめに

WSLを利用して開発を行う場合、基本的にはWindows側のテキストエディタを利用してコーディングし、WSL側でアプリケーションを動かすと思います。

こういった場合に、WSLからWindowsで書いたアプリケーションファイルに容易にアクセスできるようにするための方法です。

シンボリックリンクというWindowsでいうショートカット的なものをWSLのホームディレクトリに用意することで対処します。

なお、直接WSLのホームディレクトリを書き換える方法もありますので、その場合は以下の記事を参考にしてください。

WSLにおけるホームディレクトリをWindowsと同じ場所にする

環境

  • Windows Subsystem for Linux (Ubuntu 18.04)

シンボリックリンクとは?

前述したとおり簡単に言うと『ショートカットみたいなもの』ですね。

厳密に言うとWindowsのショートカットとは異なるのですが、ひとまずはそういう感覚でいいと思います。

WSLのデフォルトのホームディレクトリは『/home/{username}』ですが、WindowsのホームディレクトリはWSLからは『/mnt/c/Users/{username}』にありますので、WSLのホームディレクトリからここに行こうと思うとちょっとアクセスしづらいですよね。

ということで、例えば、WSLのホームディレクトリに『/mnt/c/Users/{username}』までのショートカットを作ってやれば簡単に行けるよね、って話です。

注意

{username}の部分はそれぞれのユーザー名を代入して考えてください。『{username}』とそのまま打ち込まないように。

{} ←このカッコもそれを表しているだけで、入力は不要です。

例えばユーザー名が『fuchiaz』なら『/mnt/c/Users/fuchiaz』となります。

方法

  • STEP.1
    リンクを貼りたいWindowsのパスを確認する

    例えばWindowsのCドライブ中にあるユーザーフォルダはWSLから見ると、先ほど示しているように『/mnt/c/Users/{username}』となります。

    これを参考にリンク先のパスを調べてください。

    今回は試しにユーザーフォルダの下に『linux_sym_link』というフォルダを用意しました。
    ココへのパスは『/mnt/c/Users/{username}/linux_sym_link』となることはわかると思います。


    ※ユーザー名だけ隠してます

    WSLからはココへのリンクを貼ってみます。

  • STEP.2
    WSLに先ほどのパスへのリンクを作る

    それではWSLのUbuntuのbashから、先ほどのフォルダへのリンクを作成しましょう。コマンドは次のとおりです。

    コマンドの解説

    ln

    リンクを作成するコマンドです。

     

    -s

    先ほどのリンクを作成するコマンドのオプションで、-sを指定するとシンボリックリンクを指定したことになります。

     

    /mnt/c/Users/{username}/linux_sym_link

    リンク先(つまりWindows側)のパスを入力します。先ほどの手順で書いたとおりなので良いでしょう。

     

    ~/linux_sym_link

    Windowsへのリンクの入り口となるパスを指定します。WSLのホームディレクトリに『linux_sym_link』という先ほどと同名のフォルダを用意してそこを入り口にしたいのでこのようにしてみました。

  • STEP.3
    確認


    ※Winユーザー名、無関係なディレクトリ名を伏せています。

    このように試しに作成したシンボリックリンクをたどってみると、Windows側の指定したフォルダへのリンクになっていることがわかると思います。

    ちなみに、『ls -l』コマンドでどこに対してリンクが貼られているかを確認することができます。

  • STEP.4
    完了!

リンク先を間違えた場合は?

例えばシンボリックリンクの宛先を間違えて入力してしまった場合や、リンクが不要になった場合などは『unlink』コマンドでリンクの削除が可能です。

↑はわざとリンクの宛先を間違えたパターンですが、リンクの宛先が不適切な場合は文字色が変わって表示されるようです。
(隣の linux_home というのがきちんと貼れているリンクです)

なお、unlinkコマンドで削除されるのはあくまでリンク部分のみであり、宛先の(ココだと /mnt/c/Users/{username}/linux_sym_link の)中身が削除されるわけではありませんので安心してください。

おわりに

以上、シンボリックリンクの作成方法をご紹介しました。

WSLとWin側を行ったり来たりするのは面倒だと思うのでシンボリックリンクを活用しましょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください