LinuxとWindowsのファイル共有入門|WSL2でWindowsフォルダにアクセスする方法

運営:リナックスマスター.JP(代表 宮崎智広)
HOME > Linux技術 リナックスマスター.JP(Linuxマスター.JP) > 【Linux入門】初心者のための基礎知識・講座 > LinuxとWindowsのファイル共有入門|WSL2でWindowsフォルダにアクセスする方法
「LinuxからWindowsのファイルにアクセスしたい」
WSL2を使い始めたばかりの人が最初に戸惑うのが、LinuxとWindowsのファイルのやり取りです。
「ダウンロードしたファイルをLinuxで使いたい」「Linuxで編集したファイルをWindowsで開きたい」——そんな場面で迷った経験はないでしょうか。

この記事では、WSL2環境でLinuxとWindowsのファイルを相互に行き来する方法を、初心者向けに手順を追って解説します。
WindowsのどこにLinuxからアクセスできるか、逆にWindowsからLinuxのファイルを開く方法まで、実際のコマンド出力例を交えながら説明します。

この記事のポイント

・WSL2からWindowsのCドライブは /mnt/c でアクセスできる
・Windowsの「デスクトップ」「ドキュメント」は /mnt/c/Users/ユーザー名/の配下にある
・エクスプローラーで \\wsl$ を開くとWSL2のLinuxファイルを確認できる
・cp・mv コマンドで Linux ⇔ Windows 間のファイルコピー・移動が可能


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

なぜWSL2ではLinuxとWindowsのファイルが共存できるのか

WSL2(Windows Subsystem for Linux 2)は、Windows 10/11の中でLinuxを動かす仕組みです。
インストールしたUbuntuなどのLinuxは、Windowsの中で動く軽量な仮想マシン(VM)として動作しています。

Windowsのファイルシステム(Cドライブなど)は、WSL2のLinux側から/mnt/というディレクトリ配下に「マウント」された形でアクセスできます。
「マウント」とは、外付けドライブを差し込んで使えるようにする操作と同じ概念です。WSL2はWindows起動時に自動でCドライブなどをLinux側に接続してくれます。

この仕組みのおかげで、LinuxとWindowsの間でファイルをやり取りするのに、わざわざUSBメモリを使ったり、専用のツールを用意したりする必要はありません。

WindowsのファイルをLinuxから確認する

1. /mnt ディレクトリを確認する

WSL2のターミナルを開き、以下のコマンドで/mntの中身を確認します。

ls /mnt

実行結果の例:

c d wsl wslg

「c」がWindowsのCドライブです。「d」が表示されている場合は、DドライブもLinuxからアクセスできる状態です。
「wsl」と「wslg」はWSL2が内部で使う特殊なマウントポイントです。wslgはWSL2のGUI機能(WSLg)が使うソケットファイル領域で、通常は触る必要はありません。

2. WindowsのCドライブの中身を表示する

ls /mnt/c

実行結果の例:

'$Recycle.Bin' PerfLogs Recovery Users pagefile.sys ProgramData 'Program Files' 'Program Files (x86)' Windows

Windows環境でおなじみのフォルダが見えています。Linuxターミナルから、普通にWindowsのファイルが見えていることに驚く方も多いです。

3. Windowsのデスクトップ・ドキュメントにアクセスする

Windowsのユーザーフォルダは /mnt/c/Users/Windowsのユーザー名/ の配下にあります。

# Windowsのデスクトップを確認する例(ユーザー名はtomohiroの場合) ls /mnt/c/Users/tomohiro/Desktop

Windowsユーザー名が分からない場合は以下で確認できます:

ls /mnt/c/Users/

実行結果の例:

tomohiro Public Default

自分のユーザー名のフォルダが表示されます。

LinuxとWindowsの間でファイルをコピーする

1. WindowsからLinuxへファイルをコピーする

Windowsのデスクトップにある「sample.txt」をLinuxのホームディレクトリにコピーする例です。

# Windowsデスクトップ → Linuxホームディレクトリへコピー cp /mnt/c/Users/tomohiro/Desktop/sample.txt ~/

コピー後に確認します:

ls ~/sample.txt

/home/ubuntu/sample.txt

2. LinuxからWindowsへファイルをコピーする

Linuxで作成したファイルをWindowsのデスクトップに置く例です。

# Linuxで作ったファイルをWindowsデスクトップにコピー cp ~/myfile.txt /mnt/c/Users/tomohiro/Desktop/

コピーが終わったら、Windowsのデスクトップを開いて確認してみてください。ファイルが表示されているはずです。

3. フォルダごとコピーする(-rオプション)

フォルダ(ディレクトリ)ごとコピーする場合は -r オプションを使います。

# LinuxのプロジェクトフォルダをまるごとWindowsドキュメントへ cp -r ~/myproject /mnt/c/Users/tomohiro/Documents/

4. ファイルを移動する(mvコマンド)

コピーではなくファイルを移動したい場合は mv コマンドを使います。cp はコピー元を残しますが、mv はコピー元が削除されます。

# LinuxのファイルをWindowsのDocumentsへ移動(元のファイルは消える) mv ~/report.txt /mnt/c/Users/tomohiro/Documents/

大事なファイルは先に cp で確認してから移動するか、操作前にバックアップを取ることをお勧めします。

WindowsエクスプローラーからLinuxのファイルを開く

WSL2では、逆にWindows側からLinuxのファイルを確認する方法もあります。

1. エクスプローラーで \\wsl$ を開く

Windowsのエクスプローラーのアドレスバーに以下を入力します。

\\wsl$

インストールしているLinuxディストリビューション(例:Ubuntu-24.04)のフォルダが表示されます。
そこからLinuxのファイルシステムを、Windows側からフォルダとして閲覧・編集できます。

2. WSL2ターミナルからエクスプローラーを開く

現在いるLinuxのディレクトリをWindowsのエクスプローラーで直接開くこともできます。

# 現在のディレクトリをエクスプローラーで開く explorer.exe .

このコマンドで、Linuxで作業中のフォルダをWindowsのGUI(グラフィカルな画面)で確認できます。
ファイルをドラッグ&ドロップで移動したいときにも便利です。

3. LinuxファイルをWindowsアプリで編集する

\\wsl$ 経由でLinuxのファイルにアクセスできるため、Visual Studio CodeなどのWindowsアプリから直接編集することも可能です。
エクスプローラーでLinuxのファイルを右クリックして「プログラムから開く」を選べば、任意のWindowsアプリでLinuxのファイルを直接開けます。
VS Codeを使っている場合は「Remote - WSL」拡張機能を導入すると、LinuxのファイルをWindowsのエディタで快適に編集できるようになります。

よくあるトラブルと対処法

「Permission denied」エラーが出る場合

WindowsのシステムフォルダやProgram Filesなど、管理者権限が必要なフォルダにアクセスしようとすると Permission denied エラーが出ることがあります。

ls: cannot open directory '/mnt/c/Windows/System32': Permission denied

この場合は、アクセス先をユーザーフォルダ(/mnt/c/Users/ユーザー名/)配下に限定してください。
Windowsの管理者フォルダへのアクセスは、WSL2の通常操作では行わないほうが安全です。

ファイル名に日本語が含まれる場合の注意

日本語ファイル名はLinuxコマンドで扱えますが、タブ補完が効きにくい場合があります。
ファイル名をシングルクォートで囲むと安全に指定できます。

# 日本語ファイル名を含む場合はシングルクォートで囲む cp '/mnt/c/Users/tomohiro/Desktop/作業メモ.txt' ~/

コピーが遅く感じる場合

WSL2から/mnt/c(Windowsファイルシステム)へのアクセスは、Linux内部のファイル操作より若干遅くなる場合があります。
大量のファイルを頻繁にやり取りする開発作業では、作業フォルダはLinux側(~/配下)に置き、完成したファイルだけをWindowsに移すのが効率的です。

/mnt/c へのアクセスが突然できなくなった場合

WSL2の起動直後や、長時間使用した後に /mnt/c へのアクセスが不安定になることがあります。
その場合は、WSL2を完全に再起動することで解決することが多いです。

# PowerShellまたはコマンドプロンプトで実行: WSLを停止して再起動 wsl --shutdown wsl

wsl --shutdown はすべてのWSL2インスタンスを停止します。再度 wsl を実行すると起動し直せます。

本記事のまとめ

やりたいこと コマンド・方法
WindowsのCドライブを確認する ls /mnt/c
Windowsのデスクトップを確認する ls /mnt/c/Users/ユーザー名/Desktop
WindowsからLinuxへファイルをコピー cp /mnt/c/Users/名前/Desktop/ファイル名 ~/
LinuxからWindowsへファイルをコピー cp ~/ファイル名 /mnt/c/Users/名前/Desktop/
LinuxからWindowsへファイルを移動 mv ~/ファイル名 /mnt/c/Users/名前/Desktop/
エクスプローラーでLinuxを開く アドレスバーに \\wsl$ と入力
現在のLinuxディレクトリをエクスプローラーで開く explorer.exe .
WSL2を完全に再起動する PowerShellで wsl --shutdown 後に wsl

WSL2は「LinuxとWindowsの壁」を取り払ってくれる便利な環境です。
最初は /mnt/c という仕組みに戸惑うかもしれませんが、一度使い方がわかると「意外と簡単だ」と感じる方がほとんどです。

ファイルのやり取りに慣れてきたら、次はLinuxコマンドでWindowsのテキストファイルを加工したり、スクリプトで自動処理したりと、活用の幅が一気に広がります。
ぜひ手を動かして試してみてください。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
コマンドを「なんとなく打つ」段階から卒業したい方は、ぜひ受け取ってみてください。
無料マニュアルを受け取る >>

<PR>手元に置いて学びを深める1冊

ざっくり WSL: Windows と Linux を融合して快適開発環境を実現 ざっくり解説シリーズ

まず無料メルマガでWSL2の基礎を学び、さらに体系的に理解を深めたい方は手元に置いておきたい1冊。

次に読む記事

ファイル操作をもっと活用したい方には、以下の記事もあわせてご覧ください。

・tarコマンドでファイルをまとめる方法|圧縮・解凍の全オプション
・ssコマンド・lsofでポートの使用状況を確認する方法
・Linuxのディレクトリ構造を理解する|/etc・/var・/usrの役割と違い
・chmodコマンドで権限を設定する方法|数値指定と記号指定の使い分け
・grepコマンドでファイル内の文字列を検索する方法|-r・-l・--excludeの実践例
・rsyncコマンドでファイルを同期・バックアップする方法|--deleteの安全な使い方
・scpコマンドでLinuxサーバー間のファイルを安全に転送する方法

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

運営

リナックスマスター.JP(代表 宮崎智広)

株式会社イーネットマーキュリーが運営するLinux教育サイトです。代表の宮崎智広は現役のLinuxサーバー管理者として20年以上の実務経験を持ち、累計3,100名以上のエンジニアを指導してきました。実践型のLinuxセミナーや無料マニュアルの配布を通じてLinux人材の育成に取り組んでいます。