web-dev-qa-db-ja.com

WindowsからUbuntuサブシステムにファイルをコピーする

開発者モードを有効にしてBash on Ubuntu on Windowsをインストールしました。

私のホームディレクトリは%localappdata%\Lxss\home\<ubuntu.username>\の下にあります、私は完全パスがであるべきであるようにPicturesと呼ばれるサブディレクトリを作成しました

windowsの場合:C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures

bashでは:/home/<ubuntu.username>/Pictures

私がコマンドtouch hello.txtを使ってbashからファイルを作成するならば、私は自由にウィンドウズUIでこのファイルを見て、私のデスクトップにそれをコピーすることができます。しかし、WindowsのUIから新しいテキストファイルを作成してC:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Picturesに保存すると、bashやwindowsを再起動しても、ls -lを実行してもファイルは表示されません。

Windows側で作成されたファイルを自分のホームディレクトリにbashで表示できないのはなぜですか?

EDIT/mnt/cを使用することは解決策ではありません、私は理解しようとしていますなぜそれはそれらのファイルを見ていないし、端末を使用してファイルをコピーアンドペーストしたり移動したりするのではなく、UIが作成したファイルを見ることができます。

55
JordanGS

あなたは/mntディレクトリの下であなたのwindowsシステムにアクセスできるはずです。例えばbashの中で、これを使って写真ディレクトリにたどり着きます。

cd /mnt/c/Users/<ubuntu.username>/Pictures

お役に立てれば!

78
zoecarver

WSL内のLinuxファイルシステム(lxssフォルダにあります)にのみアクセスする必要があります。DO NOTWindowsのlxssフォルダ内のファイルは作成/変更してください。

WSLとWindowsの間でファイルを共有できるようにしたい場合は、ファイルをlsxxフォルダーの外に置いてください。 WSL内の/mntなどのdrvFS(/mnt/c/Users/youusername/files)を介してそれらにアクセスし、Windowsでそれらを変更することができます。

詳細とその理由については、 https://blogs.msdn.Microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools)を参照してください。 /

42
reker