Actualizar:

Actualizar:

Estoy ejecutando Ubuntu desde Windows.

Cuando creo una carpeta desde Windows llamada newFolderen el directorio raíz C:\Users\myuser\AppData\Local\lxss\root\Newfoldery luego desde Bash, cuando ejecuto lsno veo la nueva carpeta que se acaba de crear.

¿Cómo puedo solucionar este problema para poder crear carpetas y archivos desde Windows y luego acceder a ellos desde Bash?

Respuesta1

Actualizar:

Desde Windows 10 versión 1903, es posible acceder a archivos de Linux desde Windows con \\wsl$\. Para que puedas ejecutar explorer.exe .desde bash o ingresar \\wsl$\directamente en la barra de direcciones del Explorador

Ver¿Qué hay de nuevo para WSL en Windows 10 versión 1903?

De nuevo todavía existe la advertencia de que¡NO debe acceder a sus archivos de Linux a través de la carpeta AppData!

Para versiones anteriores de Windows 10, consulte a continuación


Los archivos de Linux en el sistema de archivos raíz WSL se crean especialmente con permisos POSIX almacenados en atributos extendidos NTFS. Puedes ver eso ejecutando fsutil file layout lxss\rooty notando el$EAarroyoallá. Si crea los archivos directamente desde Windows, arruinará las cosas porque las aplicaciones win32 no saben nada sobre Linux y sus metadatos de archivos.

El problema surge cuando, por ejemplo, utiliza una aplicación/herramienta de Windows para abrir, crear y/o modificar un archivo en la raíz de su distribución: dado que el archivo se creó con una herramienta de Windows, el archivo no tendrá metadatos de archivo de Linux. (por ejemplo, permisos, propietario, marcas de tiempo de acceso/actualización, etc.). Por lo tanto, para Linux (que solo recibe metadatos de archivos de Linux),el archivo puede ser reportado como vacío, es posible que ni siquiera exista o que tenga algunos metadatos, pero es posible que esos metadatos no reflejen los detalles del archivo y que el contenido del archivo esté dañado..

Por lo tanto, MS ha advertido audazmente que

NO, bajo NINGUNA circunstancia, cree ni modifique archivos de Linux utilizando aplicaciones, herramientas, scripts, consolas, etc. de Windows.

Crear/cambiar archivos de Linux desde Windows probablemente resultará en corrupción de datos y/o dañará su entorno Linux, lo que requerirá que desinstale y reinstale su distribución.

No cambie archivos de Linux usando aplicaciones y herramientas de Windows

Los archivos que sólo son relevantes para Linux deben crearse únicamente desde WSL. Si desea crear archivos a los que se pueda acceder en ambos sistemas, créelosfuera de la raíz WSLy acceda desde WSL a través del punto de montaje en /mntme gusta/mnt/drive/path

Si desea crear archivos en sistemas de archivos de Windows pero conserva la sensibilidad entre mayúsculas y minúsculas, utilice

fsutil file setCaseSensitiveInfo <directory name> enable

La bandera también se puede comprobar confsutil file queryCaseSensitiveInfo <directory name>

Ver también¿Cómo acceder a archivos de Linux/Ubuntu desde Windows 10 WSL?

Respuesta2

No puedes crear carpetas en Ubuntu y acceder a ellas desde Windows. Pero puedes hacer lo contrario.

Puede acceder a las unidades de Windows en /mnt. Si lo hace, ls /mntverá todas sus unidades. Entonces /mnt/c es la ruta de su unidad C. De igual forma /mnt/c/Users/username/Desktoppuede darte acceso a tu escritorio en Bash.

Así que simplemente acceda a la ruta deseada usando Bash y acceda a los archivos y carpetas de Windows. Para obtener más detalles sobre cómo acceder rápidamente a sus archivos de Windows, utilice enlaces simbólicos, los detalles pueden serencontrado aquí

Respuesta3

Invierta su pensamiento: si desea crear archivos usando aplicaciones y herramientas de Windows y acceder a ellos desde Bash, cree esos archivos, etc. en su sistema de archivos de Windows y acceda/cópielos desde Bash.

A continuación se muestra un ejemplo de cómo crear un archivo en PowerShell, luego llamar a Bash para copiar el archivo creado en la carpeta de inicio y luego llamar a bash para escribir el contenido del archivo:

PS C:\dev\temp> Set-Content ./hello.txt -Value "Hello, World!" -Encoding ASCII
PS C:\dev\temp> cat .\hello.txt
Hello, World!
PS C:\dev\temp> bash -c "cp /mnt/c/dev/temp/hello.txt ~/"
PS C:\dev\temp> bash -c "cat /mnt/c/dev/temp/hello.txt"
Hello, World!

HTH.

información relacionada