Puis-je changer de répertoire pour un lecteur Windows dans Ubuntu Bash sur WSL?


13

Je suis un super débutant pour Ubuntu et j'ai essentiellement besoin d'Ubuntu pour un package Python. Je voudrais exécuter un fichier Python dans say e:/username/folder1/folder2/python.py. J'ai essayé toutes les méthodes en ligne et la seule réponse est bash: cd./e: No such file or directory. Je ne sais pas si c'est à cause des fenêtres bash ou virtualenv.

Quand j'utilise bash sur Ubuntu sous Windows, lsdit-il VIRTUALENV_DIR. cd, dit-il /home/username. Le cd ..etc change un peu le répertoire, mais pas un autre lecteur, ni le dossier que je voudrais qu'il trouve.

Réponses:


22

WSL stocke vos lecteurs Windows dans le /mntdossier, avec le nom du lecteur en tant que sous-dossier. Par exemple, votre C:\lecteur sera présent sur /mnt/c/pour que vous puissiez l'utiliser.

En gardant cela à l'esprit, vous pouvez basculer vers votre dossier spécifique comme suit:

cd /mnt/e/username/folder1/folder2

1
Voulez-vous vraiment cdun fichier? ressemble a cd /mnt/e/username/folder1/folder2/plus de sens
dufte

@dufte Bonne prise. Ouais pour copier-coller!
Kaz Wolfe

pour Ubuntu 16.04, il se trouve dans le dossier / media
solfish

3

Oui, tu peux faire ça. J'ai utilisé shift+ clic droit pour obtenir "Ouvrir Powershell ici" dans le répertoire que vous souhaitez bash et exécuter la commande 'bash', puis exécutez comme d'habitude. Cela revient à utiliser Ubuntu bash car il utilise les mêmes packages Python dans Windows Powershell après avoir utilisé la commande 'bash'.

Remarque: Sur Windows 10, la dernière mise à jour peut-être avril 2018 avec WSL et le mode développeur activé.


1

Dans l'explorateur Windows, accédez à e:/username/folder1/folder2/,

tapez bashet appuyez sur Enterdans la barre d'adresse, une bashfenêtre avec le chemin d'accès e:/username/folder1/folder2/apparaîtra.

Cela fonctionne également avec la commande cmd.

Référence


0

Vous pouvez essayer de faire ceci: cd E:/username/folder1/folder2/ puis exécutez python python.py. Cela fonctionne toujours dans mon cas sur une machine Windows exécutant bash.


0

avec ce petit script, vous pouvez exécuter chaque commande à partir du répertoire dans lequel se trouve votre PowerShell. Cela ne fonctionne que si le lecteur est déjà monté sur / mnt / dans le sous-système. Cela ne fonctionne pas avec les ressources réseau.

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'"}

après l'avoir exécuté, vous pouvez l'utiliser comme ceci:

tux vim test.txt
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.