Pourquoi, lorsque je crée un fichier à partir de Windows par exemple, ne puis-je pas le voir sous le sous-système Linux dans Windows 10 (bash.exe)
La capture d'écran devrait expliquer.
Dossier: OMG a été créé à partir de Windows Explorer. Le dossier OMGBash a été créé avec le sous-système Linux bash.exe
Lorsqu'un dossier ou un fichier est créé en dehors de bash.exe, je ne le vois jamais, quelles que soient les autorisations et la propriété.
Pour afficher les informations que j'ai eu à utiliser avec Cygwin pour afficher les autorisations de fichiers, j'ai également modifié les autorisations pour voir si le dossier apparaîtrait. (Les deux fenêtres de commande en bas)
Capture d'écran montrant les permissions sur les dossiers, les bash.exe et les Cygwin:
J'essaie de déplacer tous mes scripts Cygwin vers le sous-système Linux, mais je n'ai pas envie de recréer tous les fichiers, de devoir copier et coller à l'aide de bash, puis de reformater puis d'utiliser Dos2unix (à très longue vitesse).
Trouvé ceci sur GitHub pour le sous-système Linux:
la copie directement dans le sous-système Linux à partir de Windows n'est pas prise en charge, selon une discussion sur d'autres tickets. Il y a un répertoire quelque part sous AppData (j'oublie où) qui semble contenir les fichiers du système de fichiers WSL. Mais si vous y mettez de nouveaux fichiers ou modifiez des fichiers existants, vos modifications ne sont pas correctement reflétées dans WSL.
Ma meilleure hypothèse est que Linux doit stocker sur ses fichiers différentes métadonnées (et plus d'informations de mise en cache, etc., car son modèle de mise en mémoire tampon du disque) sont similaires à celles de Windows. du système de fichiers Linux dans une base de données, et en utilisant simplement le système de fichiers Windows comme un magasin BLOB pratique pour cette base de données.
Si vous avez vraiment besoin de faire cela, une solution de contournement consisterait à écrire un script drag'n'drop .bat ou à faire en sorte que bash.exe -c "mv% 1 / home / $ USER /". (Vous devrez probablement faire un travail intelligent avec sed et tr, probablement, pour convertir% 1 en un chemin WSL valide.)
Vous pouvez également placer vos fichiers dans un répertoire Windows et, dans WSL, effectuer "cd ~; ln -s / mnt / c / chemin / vers / mes / fichiers" pour les faire apparaître dans votre répertoire homologue WSL?
la source
cp -r --no-preserve=all
supprimer les autorisations précédentes. Néanmoins, si vous souhaitez apporter des modifications importantes, vous ne pouvez pas utiliser une application Windows pour modifier le fichier dans le système de sous-système Linux. Vous devez le modifier dans votre répertoire Windows, puis le copier. Maintenant, je sais que c'est faisable, MAIS j'avais l'impression que le sous-système Linux était plus natif / intégré à Windows qu'un système d'exploitation isolé%LocalAppData%\Packages\<some-long-name-of-distro>\LocalState\rootfs
.Réponses:
Je ne suis pas sûr de bien comprendre votre question, mais votre Ubuntu bash (fenêtre en haut à droite) devrait avoir accès à vos disques Windows
/mnt
. Par exemple, sur mon/mnt/c/Users/Scott/Desktop
ordinateur se trouve mon bureau Windows et je peux y lire / écrire des fichiers à partir de vi par exemple. Je ne crois pas que le contraire soit vrai pour l'instant. Autrement dit, je ne pense pas que vous puissiez explorer votre monde bash à partir de l’explorateur Windows.Ce que je faisais en tant que développeur, c’est d’héberger des projets sur mon
/mnt/d/projects/someproject/
dossier d: et de pointer les outils Linux sur ce dossier.Assurez-vous de mettre à jour régulièrement vos versions de Windows, car elles semblent résoudre beaucoup de problèmes avec chaque version, en particulier en ce qui concerne les liens symboliques et le franchissement des limites entre les systèmes de fichiers entre Linux / Windows.
la source
@ scottt732 a répondu magnifiquement.
Juste un conseil pour les développeurs qui travaillent sous Windows et souhaitent accéder très rapidement à ces fichiers du sous-système Linux. Vous pouvez utiliser des liens symboliques .
Par exemple, si vous travaillez sur un projet dans
d:/projects/web-project
, vous pouvez créer un lien symbolique à l'emplacement/var/www/web-project
. Tous les fichiers que vous modifiez dans Windows seront facilement accessibles et accessibles dans Linux Bash.Pour cela, vous utiliserez une
ln
commande comme celle-ciDans la ligne ci-dessus
/mnt/d
était censé être votre lecteur d sur Windows. Configurez votre hôte virtuel Apache sur ce chemin et vous êtes prêt à partir.la source
css-file.css
,. J'ai posté à propos de cette question ici .Nous vous recommandons de ne pas copier / créer / mettre à jour les fichiers Linux à l'aide d'applications Windows .
À la place, stockez dans le système de fichiers Windows (par exemple
c:\dev\project
) les fichiers que vous souhaitez modifier à l’aide des outils Windows et / ou créez / test / run à l’aide des outils / runtimes / plates-formes Linux (par exemple, via/mnt/c/dev/project
).Dans votre scénario spécifique, si vous souhaitez copier vos fichiers dans Cygwin Bash, puis Bash ouvert et copier les fichiers de votre dossier Cygwin sur C: dans
~/
, comme ceci:cp /mnt/c/Users/dave/Documents/Cygwin/* ~/
)HTH.
la source
J'avais besoin de travailler avec PyCharm / eclipse sur Windows 10, alors que pour exécuter / testind, j'avais besoin d'un environnement Linux.
J'ai eu des problèmes pour vérifier de git dans Linux Sub System et l'édition avec les fichiers PyCharm n'a pas été vue immédiatement et avait des problèmes;
J'ai eu ce qui précède dans mon .bashrc dans la région d'Ubuntu. Cela fonctionne parfaitement. Je pourrais éditer Windows et exécuter / tester sous Ubuntu sans aucun problème.
la source
J'ai eu un besoin similaire de copier des fichiers entre WSL et Win10. J'ai fini par activer sshd sur l'installation Ubuntu afin de pouvoir utiliser ssh sous Linux à partir de win10. Ensuite, j'utilise Winscp pour copier des fichiers dans les deux sens. Pas optimal, mais je ne copie pas les fichiers très souvent. J'ai essayé de trouver le message que j'avais utilisé pour activer sshd mais je ne le trouve pas.
la source