Pourquoi, lorsque je crée un fichier à partir de Windows par exemple, je ne peux 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 l'explorateur Windows. Le dossier OMGBash a été créé à partir du sous-système Linux bash.exe
Lorsqu'un dossier OU un fichier est créé en dehors de bash.exe, je ne peux jamais le voir, quelles que soient les permissions et la propriété.
Pour montrer les informations, j'ai dû utiliser Cygwin pour montrer les permissions des fichiers, j'ai également modifié les permissions pour voir si le dossier apparaissait. (Les deux commandes Windows en bas)
Capture d'écran montrant les permissions du dossier, de bash.exe et de Cygwin :
J'essaie de déplacer tous mes scripts de Cygwin vers le sous-système Linux, mais Je n'ai pas envie de recréer chaque fichier, puis de devoir copier et coller en utilisant bash, puis de reformater et d'utiliser Dos2unix (très long).
J'ai trouvé ça sur GitHub pour le sous-système Linux :
copier directement dans le sous-système Linux à partir de Windows n'est pas supporté, selon la discussion sur d'autres tickets. Il existe une méthode répertoire sous AppData quelque part (je ne sais plus où) qui semble contenir les fichiers pour le système de fichiers WSL. Mais si vous mettez de nouveaux fichiers ou modifiez des fichiers existants, vos modifications ne sont pas reflétées correctement dans WSL. correctement dans WSL.
Je pense que Linux a besoin de stocker des métadonnées différentes (et plus d'informations sur la mise en cache, etc., puisque son modèle de tamponnage disque est également différent) sur ses fichiers que Windows, et que cela est et que ceci est actuellement implémenté en stockant la copie principale de la structure du du système de fichiers Linux dans une sorte de 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 serait d'écrire un fichier drag'n'drop .bat script ou quelque chose du genre qui fait bash.exe -c "mv %1 /home/$USER/". (Vous devrez faire un travail astucieux avec sed et tr, probablement, pour traduire %1 en un chemin WSL valide).
Alternativement, vous pourriez mettre vos fichiers dans un répertoire Windows et, et, dans WSL, faire "cd ~ ; ln -s /mnt/c/path/to/my/files" pour qu'ils apparaissent pour qu'ils apparaissent comme étant dans votre répertoire personnel WSL ?
0 votes
Est-il possible de monter le disque dur de Windows sous l'environnement Linux ? De cette façon, tous les fichiers devraient être affichés en temps réel... (ou même seulement le répertoire de la maison Cygwin).
3 votes
Bonne idée, mais malheureusement les fichiers ne sont pas visibles. Le moyen de contourner ce problème est de copier les fichiers du répertoire Windows vers le répertoire du sous-système Linux via Bash.exe. En procédant de cette manière, il faut
cp -r --no-preserve=all
Pour abandonner les permissions précédentes. Cependant, si vous voulez faire des changements importants, vous ne pouvez pas utiliser une application Windows pour éditer le fichier dans le sous-système Linux, vous devez l'éditer 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é dans Windows qu'un OS isolé.0 votes
Vous pouvez suivre l'évolution de ce problème (traitement des fichiers entre Windows et WLS) à l'adresse suivante github.com/Microsoft/BashOnWindows/issues/1051
0 votes
Si vous installez une distribution à partir du Windows Store, le système de fichiers sera à
%LocalAppData%\Packages\<some-long-name-of-distro>\LocalState\rootfs
.