Linux用Windowsサブシステムのホームディレクトリは何ですか?


86

bashLinux用Windowsサブシステムを起動すると、ディレクトリにドロップされます

/mnt/c/Users/<username>

I場合はls、このディレクトリ、私はディレクトリを参照DesktopDocuments私が見ることができる、などであるC:\Users\<username>Windowsのファイルエクスプローラを使用して。これがbashプログラムの開始場所であるため、これが私のホームディレクトリであると予想していましたが、どちらcdcd ~を入力するか

/home/<username>

これは私が含まれている.bashrc.profileなど私はLinuxボックスに自分のホームディレクトリで見つけることを期待するファイルを。また、侵入cd ../..ここから私は、ディレクトリを見ることができるbinetcというように、再びとしてのLinuxボックスに期待します。

これに関しては2つの質問があります。

  1. 正確に何と/mnt/c/Users/<username>比較されC:\Users\<username>ますか?それらは同じもののようです---だから何/mnt/c/ですか?
  2. /home/<username>Windowsファイルエクスプローラーを使用してファイルを表示するにはどうすればよいですか?私が本当に望んでいるわけではありませんが、WindowsがこのLinux向けサブシステムをどのように整理しているのかを把握しようとしているだけです。

回答:


102

2:現在のパスは、1つのグローバルパスではなく、Microsoftストアからインストールしたディストリビューションに関連しています。したがって、Ubuntuの場合は次の場所にあります。

%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

他のディストリビューションは、以下のそれぞれのフォルダーの下の同様の場所にあると思います。

%LOCALAPPDATA%\Packages\

11
他の人がこの練習を邪魔していると感じていますか?HOMEフォルダーは、レポジトリ内のMYデータの安全な場所の1つではないでしょうか?このアプローチでは、破損したレポジトリと再インストールにより、マイデータが保護されずにマイデータがホースされ、既にREAL / homeがある場合は非表示になります。そこにデータが保持されないのはなぜですか?ディストリビューションの試用/使用/交換が推奨されているため、これはさらに危険です(WLinux)。誰かがこのこと全体を考えなかったように本当に感じています。
rainabba

私の場合(1809)、フォルダーの名前はCanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc
jao

2
重要な注意:Windowsツールを使用してLinuxファイルをいじらないでください。参照:blogs.msdn.microsoft.com/commandline/2016/11/17/...を (もブログ記事自体を参照してください)
coltoneakins

素晴らしい。git for windows / mingwがまだうまく機能するもう1つの理由は、実際の日々のワークロードに考えられるより多くの考えです。適切に再マッピングする方法はありますか?
enorl76

1
@rainabba一見したところ、私は同意しますが、考えた後、まだ本格的なUbuntuではなくWindowsを使用することを選択しています。そのため、私はWSLをLinuxツールにアクセスする方法として扱いますが、Windowsファイルシステムは依然として第一級市民として扱います。だから/mnt/c/、私はすべてをWSLに保存します。WSLがLWSに逆転した場合、私はそれが大好きです。つまり、Windows用Linux Subsystemsを使用してUbuntuを実行し、Ubuntuに統合された完全なWindows 10コピーを実行するのは素晴らしいことです。それはもっと難しいことですが、夢を見ることができます。
Chev

29
  1. /mnt/cはとまったく同じC:\です。WSLから取得するための構文です。
  2. を見てくださいC:\Users\<username>\AppData\Local\Lxss\rootfs

8
警告:blogs.msdn.microsoft.com/commandline/2016/11/17 / ...それはイエスですが、何も変更しない場所です。
chx

6
2018年現在、この回答は無効です。@MichaelBondの回答を参照してください。
dr01

11
今では、に行っていC:\Users\[USERNAME]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_[CODE]\LocalState\rootfs\ ますが、編集を意識する可能性がある場合どのように悪いあなた/手動
mementototem

コピーパスタ、経由で簡単にアクセスするための`%LOCALAPPDATA%\パッケージ\ CanonicalGroupLimited.UbuntuonWindows_ [CODE] \ LocalState \ rootfs`
小枝

「フォルダオプション>表示:詳細設定:保護されたオペレーティングシステムファイルを非表示にする(推奨)」のチェックを外さない限り、lxssフォルダーはエクスプローラーで非表示になります。ただし、非表示であっても、フォルダーパスにフォルダーを入力すると、エクスプローラーでフォルダーを開くことができます。
ダリン

17

マウントされているファイルシステムについて /mnt/c

  1. / mnt / c / Users /とC:\ Users \との正確な比較 それらは同じもののようです---- / mnt / c /とは何ですか?

Windowsとは対照的に、Linux(およびUnixベースのその他のシステム)は、所有するディスクの数に関係なく単一のフォルダー構造を使用します。複数のディスクがある場合、これらのディスクはすべて、ある時点でフォルダー構造にマウントする必要があります。

  • 典型的には、(システムをブートするために使用される異なる)すべてのディスクである搭載という名前のフォルダ内に/mnt、または/media

WSLには、Windowsで使用されるディスクへのアクセスを可能にするDrvFSという名前の特別なタイプのファイルシステムがあります。DrvFSを使用して、Windowsファイルシステムだけでなく、ネットワークディスクやその他のメディアタイプもマウントできます。

  • WSLでは、デフォルトで、C:Windows のディスクは下にマウントされます/mnt/c
  • 別のディスク、たとえばD:Windowsのディスクがある場合は、下にマウントされます/mnt/d

に表示できるファイル/mnt/cは、にあるファイルと同じですC:。ファイルを変更すると、ウィンドウでも変更が適用されます。

このコマンドを使用して、mount他の種類のメディア(リムーバブルドライブやネットワーク共有など)にアクセスできます


の場所について /home/<username>

  1. Windowsファイルエクスプローラーを使用して/ home /内のファイルを表示するにはどうすればよいですか?私が本当に望んでいることではありません。---WindowsがこのSubsystem for Linuxをどのように整理しているのかを把握しようとしています。

WSLでは、すべてのLinuxファイルシステムはWindowsフォルダーの下にあります。フォルダーの場所は、Windowsのバージョンと使用しているWSLディストリビューションによって異なります。

  • WSLの初期バージョンは、Linuxファイルシステムを保存します%LOCALAPPDATA%\Lxss\rootfs
  • Windowsビルド16215(2017年中頃)以降、WindowsストアからインストールされたWSLディストリビューションは、などのフォルダーを使用します%LOCALAPPDATA%\Packages\...\LocalState\rootfs。パッケージの名前はディストリビューションによって異なります(たとえば、UbuntuではDebianとは異なります)
  • lxRunOfflineWSL-DistroLauncherなどの他のツールを使用してインストールされたLinuxディストリビューションは、Linuxファイルシステムを任意の場所に保存できます。

多くのオプションをチェックして、WSLフォルダーの場所を知ることができます。たとえば、最も簡単なオプションは、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のアクセス許可を保存します。Microsoftは、Windowsプログラムを使用してLinuxファイルを変更することを推奨していません。一部のWindowsアプリケーションは、予告なしにLinuxのパーミッション損なう可能性があります。


5

使用しているWindowsビルドに依存する可能性がありますが、2018年のWindows 10 Pro 64ビット、バージョン1709(OSビルド16299.522)およびバージョン1803(OSビルド17134.165)の場合、これを入力していた]場所はまだです:

C:\Users\<username>\AppData\Local\lxss

トリックはC:\Users\<username>\AppData\Locallxssフォルダーが表示されない場合です(フォルダーオプションで[保護されたオペレーティングシステムファイルを非表示(推奨)]をオフにしていない場合)。

ただし\lxss、Windowsエクスプローラーのアドレスバーに追加するだけで、フォルダーに移動します。

(私はなかった注意していない持っている%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgscか、マイケル・債券の答えで述べたと同様のものを)

更新

私がインストールしたものであるレガシーWSLがあることが判明しました。現在、WSLはMicrosoftストアアプリを介して提供されています。Ubuntu 18.04 LTSのバージョンがあり、Linuxの他のフレーバー(例:Debian)もいくつかあります。最新にしたい場合は、レガシーWSLアンインストールし、Microsoftストアバージョンをインストールすることをお勧めします。

ホームフォルダの場所は、これらのタイプのWSLのどれをインストールしたかによって異なります。


4
  1. WSL bashコンソールを使用して、ホームディレクトリに「test_here.txt」などの任意の特定の名前でファイルを作成します。
  2. 次に、エクスプローラを使用して、検索ボックスを使用して、test_here.txtファイルを検索します。
  3. 見つかったファイルで、右クリックして[ファイルの場所を開く]を選択します。

これを試してみました。機能しません。検索中にファイルが表示されません。ただし、/ mnt / c / Users / <username>にファイルをドロップすると、明らかに機能します。
イーモンケニー

WSLを試してみましたが、これはもう使用していません。あまり役に立たなかった。(WSLの代わりにcygwinを毎日使用していますが、非常に便利です。)もう検証できません。申し訳ありません;)
Ellis

rootfsの検索は機能します。その後、そこからunbuntuファイルシステムをナビゲートできます。
tigr

2

Debian / Ubuntu / OpenSUSE $ HOMEをWindowsのスタートメニューに固定するwindows 10 proの4つの手順:

  1. スタートメニューからエクスプローラーを起動
  2. (検索バーではなく)アドレスバーに%LOCALAPPDATA%と入力します。
  3. 検索バーで、$ HOMEディレクトリ名を探してください。私の場合はekennyでした。これには約3つのバージョンがありますが、本当に長いパスを持つものが必要です。
  4. ホームディレクトリを右クリックし、[開始するピン]をクリックします。

これで、ホームディレクトリがスタートメニューに固定されました。私はショートカットを作成しようとしましたが、それはどこにもわかりません。


0

/etc/environmentUbuntu 16.04を使用してWindows 10 NTFSストレージを調べる必要がありました。ここで見つけました:

C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • Windowsの命名法に変更/mnt/c/C:\ました。
  • また、同じ理由でのすべての出現を変更/\ました。
  • USER_NAMEWindowsユーザー名に置き換える必要があります。
  • sudo -H NautilusWSLに保存されているユーザーファイルを表示するためのアクセス許可を取得するために使用する必要がありました。
  • NEVER 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

現在のWindows 10 Insider(高速リング:Windows 10ビルド19025.1)を使用すると、ディストリビューションをネットワークドライブとしてマウントできます。WSLはとしてアクセス可能wls$で、パスはディストリビューション名(wsl -l -q)です。

例えば net use Z: \\wsl$\Debian /PERSISTENT:YES


これはWSL2に限定されていますか?1903年の時点で、Windows内からWSLファイル構造の内容を探索できると思っていました。その変更により、マップネットワークロケーションの作成が可能になります。
ラムハウンド

私が書いたように、WSL2についてはわかりません。2つのポイントがあります:WSL2の導入(ビルド18432から)およびWSL 2によってサポートされる配布。この機能はWSL2とともに表示され、どの配布でも機能することを願っています。
子馬

1909(WSL2)は18363.476であり、18432(Insider Preview 20H1)ではなく、これは20H1ビルドでのみですか?
ラムハウンド

-1

Bashでは、Windowsファイルエクスプローラーで現在のディレクトリを表示するには、次のように入力します。

explorer .

「。」を省かないでください。これにより、現在のフォルダーでWindowsエクスプローラーが開き、他のWindowsシステムとの関連がどこにあるかを確認できます。


貢献していただきありがとうございますが、それはBashでのみ機能し、WSL(Linux用のWIndows Subsystem)では機能しません。これがこの質問の目的です。回答を削除することをお勧めします。削除しないと、投票に失敗する場合があります。
rmcsharry

これはWSLでは機能しません
Nicolai Anton Lynnerup
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.