Windows Subsystem for Linuxでbash
を起動すると、ディレクトリに落ちてしまいます
/mnt/c/Users/<username>
このディレクトリをls
と入力すると、Windowsのファイルエクスプローラを使ってDesktop
、Documents
などのディレクトリがC:\Users\<username>
にあるのが見えます。ここがbash
プログラムが起動した場所なので、ここが自分のホームディレクトリだと思っていたのですが、cd
かcd ~
のどちらかを入力すると、ここに出てきます
/home/<username>
これには私の .bashrc
, .profile
などのファイルが含まれており、Linux ボックスのホームディレクトリにあると予想されます。さらに、ここから cd ../..
を入力すると、bin
, etc
などのディレクトリが表示されます
この件に関して、2つ質問があります
/mnt/c/Users/<username>
とC:\Users\<username>
を比較すると、/mnt/c/Users/<username>
とC:\Users\<username>
は一体何なのでしょうか?同じもののようですが、/mnt/c/
とは何でしょうか?- Windowsファイルエクスプローラを使って
/home/<username>
のファイルを表示するにはどうすればいいですか?Windows がどのように Linux 用のサブシステムを構成しているかを理解しようとしているだけです
197 bcf 2017-03-04
2について:現在のパスは、グローバルパスではなく、Microsoft Storeからインストールしたディストリビューションに関連するようになりました
%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
他のディストリビューションは、それぞれのフォルダの下の同じような場所にあると思います
%LOCALAPPDATA%\Packages\
これは2018年時点で有効だった古い回答ですが、最新版[2020]ではファイルシステムからのアクセスとなります
# \\wsl$\<Distribution>:
\\wsl$\Ubuntu
212 Michael Bond 2017-12-29
Bashでは、Windowsのファイルエクスプローラでカレントディレクトリを表示するには、Enterを押すだけです
explorer.exe .
“… “を省略しないでください
これにより、現在のフォルダでWindowsエクスプローラが開き、Windowsシステムの残りの部分との関係ですべてのものがどこにあるかを確認することができます
70 Gary Barrett 2019-02-20
/mnt/c
はC:\
と全く同じです。これはWSLからそれを得るための構文ですC:\Users\<username>\AppData\Local\Lxss\rootfs
を見てください
44 Joseph Sible-Reinstate Monica 2017-03-04
/mnt/c
にマウントされているファイルシステムについて
- C:\Users<ユーザ名>と比較して、/mnt/c/Users/は何なのでしょうか?同じもののようですが、/mnt/c/とは何でしょうか?
Windows とは対照的に、Linux (および Unix ベースの他のシステム) は、ディスクの数に依存しない単一のフォルダ構造を使用します。複数のディスクを持っている場合、これらすべてのディスクはどこかの時点でフォルダ構造にマウントされなければなりません
- 通常、すべてのディスク(システムの起動に使用されたものとは異なる)は、
/mnt
または/media
という名前のフォルダにマウントされます
WSL には DrvFS という特別なタイプのファイルシステムがあり、windows で使用されているディスクにアクセスすることができます。DrvFS を使って、windows ファイルシステムだけでなく、ネットワークディスクや他のメディアタイプもマウントすることができます
- WSLでは、デフォルトでは、windowsの
C:
ディスクは/mnt/c
の下にマウントされます - 他のディスク、例えばWindowsの
D:
ディスクがある場合、/mnt/d
の下にマウントされます
/mnt/c
に表示されているファイルは、C:
に表示されているものと同じです。ファイルを変更すると、ウィンドウにも変更が反映されます
コマンドを使用して、他のタイプのメディア (リムーバブルドライブやネットワーク共有など) にアクセスすることができます
/home/<username>
の場所について
- Windows ファイルエクスプローラを使用して /home/ のファイルを表示するにはどうすればいいですか?Windows がどのように Linux 用のサブシステムを構成しているかを理解しようとしているだけです
WSL では、すべての linux ファイルシステムは Windows フォルダの下にある。フォルダの場所は、Windows のバージョンと使用している WSL ディストリビューションによって異なります
- WSLの初期バージョンでは、linuxのファイルシステムは
%LOCALAPPDATA%\Lxss\rootfs
に格納されている - Windows ストアからインストールされた WSL ディストリビューションは、Windows Build 16215 (2017年半ば) からインストールされ、
%LOCALAPPDATA%\Packages\{package}\LocalState\rootfs
のようなフォルダを使用します。パッケージ名はディストリビューションによって異なります(例:DebianとUbuntuでは異なる)。WindowsのUbuntuの場合はCanonicalGroupLimited.UbuntuonWindows_{code}
などです - lxRunOffline や WSL-DistroLauncher などの他のツールを使ってインストールされた Linux ディストリビューションは、linux ファイルシステムを任意の場所に保存することができます
WSLのフォルダの場所を知るには、many optionsをチェックしてみてください。例えば、lxRunOfflineでインストールフォルダを知るのが一番簡単なオプションだと思います
## You can use lxrunoffline to check which WSL distributions have installed
## using: lxrunoffline list
C:\> lxrunoffline list
backup
Ubuntu-18.04
## And you can use it to get the location of any of these WSL installations
## using: lxrunoffline get-dir -n <name of distribution>
C:\> lxrunoffline get-dir -n backup
c:\wsl\installed\backup
C:\> lxrunoffline get-dir -n Ubuntu
C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
インストールフォルダの場所がわかれば、/home/<username>
は<installation folder>\rootfs\home\username
の下にあります
- 例えば、インストールフォルダが
c:\wsl\ubuntu
の場合 /home/<username>
がc:\wsl\ubuntu\rootfs\home\username
にある
注意:LinuxとWindowsは、ファイルのパーミッションを異なる方法で保存します。現在、WSL DrvFSは、Windowsで見ることができるファイルに添付されたストリーム(メタデータ)としてLinuxのパーミッションを保存しています。マイクロソフトは、Windowsのプログラムを使ってlinuxのファイルを変更することを推奨していません。それは、いくつかのWindowsのアプリケーションそれに気づかずにlinuxのパーミッションを損傷する可能性があります
32 Jaime 2018-08-09
現在のWindows 10 Insider(Fast ring: Windows 10 build 19025.1)では、ディストロをネットワークドライブとしてマウントすることができます
WSLはwsl$
でアクセスでき、パスはあなたのディストリビューション名(wsl -l -q
)です
例えば net use Z: \\wsl$\Debian /PERSISTENT:YES
の場合
9 foal 2019-11-16
それはあなたが上にあるどのWindowsのビルドに依存し、2018年に私のためにWindows 10 Pro 64ビット、バージョン1709(OSビルド16299.522)とまた、バージョン1803(OSビルド17134.165)の場所はまだです
C:\Users\<username>\AppData\Local\lxss
コツは、C:\Users\<username>\AppData\Local
にいるときはlxss
フォルダが表示されないことです(フォルダオプションで「保護されたオペレーティングシステムファイルを隠す(推奨)」のチェックを外している場合を除きます)
しかし、ウィンドウズエクスプローラーのアドレスバーに\lxss
を追加するだけで、フォルダに移動します
(マイケル・ボンズの回答で言及されていた%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
などは持っていなかったことに注意)
Update
私がインストールしていたレガシーWSLがあることが判明しました。現在、WSLはMicrosoftストアアプリを介して提供されています。Ubuntu 18.04 LTS用のバージョンがあり、また、今ではいくつかの他のフレーバーのLinux(例えば、Debian)のバージョンもあります。最新の状態にしたい場合は、レガシーの WSL をアンインストールし、Microsoft ストア版をインストールする必要があります
ホームフォルダがどこにあるかは、インストールしたWSLの種類によって異なります。マイクロソフトストア版では、他の回答で述べたように、ホームフォルダは次の場所にあります
%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \LocalState\rootfs
8 User 2018-07-16
- ホームディレクトリにある WSL bash コンソールを使用して、”test_here.txt “のような任意の特定の名前のファイルを作成します
- そして、Windowsエクスプローラを使って、検索ボックスを使って、test_here.txtというファイルを検索します
- 見つかったファイルの上で > 右クリック > ファイルの場所を開きます
4 Ellis 2018-01-15
windows 10 proの4つの手順で、Debian/Ubuntu/OpenSUSEの$HOMEをWindowsのスタートメニューに固定します
- スタートメニューからファイルエクスプローラを起動します
- アドレスバー(検索バーではなく)に %LOCALAPPDATA% と入力します
- 検索バーで$HOMEディレクトリ名を探してください。これには3つのバージョンがありますが、パスが長い方がいいでしょう
- ホームディレクトリを右クリックし、”Pin to Start “をクリックします
これでホームディレクトリがスタートメニューに固定されました。ショートカットを作ってみましたが、どこにも分かりません
2 Eamonn Kenny 2019-01-11
私のセットアップ(https://developer.microsoft.com/en-us/windows/downloads/virtual-machinesからダウンロードした “Windows 10 開発環境 “の下にある WSL Ubuntu)では、AppData フォルダはデフォルトで非表示になっていました。だからしなければならなかった
- ウィンドウズエクスプローラーを開きます
C:\Users\User\
に行く- メニーで
view
を選択します - チェック
hidden items
- と表示されると、
AppData
フォルダがC:\Users\User
の下に表示されます - と私は
C:\Users\User\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_*\LocalState\rootfs\home\user
の下に私の/home/user
を発見しました(ここで*
はおそらくいくつかの種類のコードに応じてローカルコードまたはバージョンです)
なぜそんな風に隠されているのかわからない
2 Kjetil S. 2019-12-19
私はちょうどWindows 10のNTFSストレージを探してUbuntu 16.04を使用して/etc/environment
を見つける必要がありました。私はここでそれを見つけました
C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
- Windowsの命名法を
/mnt/c/
からC:\
に変更しました - また、同じ理由で
/
の出現回数をすべて\
に変更しました USER_NAME
をWindowsユーザー名に置き換える必要があります- WSLに保存されているユーザファイルを表示するためには、
sudo -H Nautilus
を使用して権限を取得しなければならなかった - Windows アプリケーションを使用して WSL で Linux ファイルを更新しないでください。Linux データが破損してしまいます
Linux (Ubuntu 16.04)側からすると、命名法は次のようになります
$ sudo cat /mnt/c/Users/USER_NAME/AppData/Local/Packages/CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc/LocalState/rootfs/etc/environment
PATH="/mnt/e/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export LIBGL_ALWAYS_INDIRECT=Yes
export DISPLAY=localhost:0.0
0 WinEunuuchs2Unix 2019-04-15
Chocolatey でディストリビューションをインストールした場合、ホームディレクトリへのパスは次のようになります
C:\ProgramData\chocolatey\lib\wsl-<distribution-name>\tools\unzipped\rootfs\home
たとえば、Ubuntu 18.04の場合
C:\ProgramData\chocolatey\lib\wsl-ubuntu-1804\tools\unzipped\rootfs\home
0 Marco Lackovic 2019-12-10