web-dev-qa-db-ja.com

WSLのUbuntu BashでディレクトリをWindowsドライブに変更できますか?

私はUbuntuの超初心者であり、基本的にPythonパッケージにはUbuntuが必要です。たとえばe:/username/folder1/folder2/python.pyでPythonファイルを実行したいと思います。すべての方法をオンラインで試してみましたが、返信はbash: cd./e: No such file or directoryのみです。 bashウィンドウが原因なのかvirtualenvが原因なのかわかりません。

Windows上のUbuntuでbashを使用する場合、lsVIRTUALENV_DIRと表示されます。 cd/home/usernameと表示されます。 cd ..などは、ディレクトリを少し変更しますが、別のドライブや検索したいフォルダは変更しません。

11
Stephanie

WSLは、ドライブの名前をサブフォルダーとして、Windowsドライブを/mntフォルダーに保存します。たとえば、使用するC:\ドライブは/mnt/c/にあります。

これを念頭に置いて、次のように特定のフォルダーに切り替えることができます。

cd /mnt/e/username/folder1/folder2
19
Kaz Wolfe

Windowsエクスプローラーで、e:/username/folder1/folder2/に移動し、

bashと入力し、アドレスバーでEnterを押すと、e:/username/folder1/folder2/にパスを持つbashウィンドウが表示されます。

これは、コマンドcmdでも機能します。

参照

1
Animeta

はい、できます。私は使った shift +右クリックして、「ここでPowershellを開く」を取得し、bashするディレクトリを選択して「bash」コマンドを実行し、通常どおり実行します。これは、 'bash'コマンドを使用した後にWindows Powershellで同じPythonパッケージを使用するため、Ubuntu bashを使用するのと同じです。

注: Windows 10で、WSLおよび開発者モードが有効になっている2018年4月の最新アップデート。

1
Sarang

これを試すことができます:cd E:/username/folder1/folder2/してからpython python.pyを実行します。私の場合、bashを実行しているWindowsマシンでは常に動作します。

0
Mohit Singh

この小さなスクリプトを使用すると、Powershellが現在あるディレクトリからすべてのコマンドを実行できます。ドライブがサブシステムの/ mnt /に既にマウントされている場合にのみ機能します。ネットワークリソースでは機能しません。

function Tux {$dl = (pwd).Path | wsl eval "cut -c 1 | tr 'A-Z' 'a-z'"; $wd = (pwd).Path | wsl eval "cut -d : -f 2 | tr '\\' '/' 2> /dev/null" ; wsl eval "cd '/mnt/$dl$wd' && eval '$args'"}

実行後、次のように使用できます。

Tux vim test.txt
0
pt1997