¿Por qué, cuando creo un archivo desde Windows, por ejemplo, no puedo verlo bajo el subsistema Linux en Windows 10 (bash.exe)
La captura de pantalla debería explicar.
Carpeta: OMG se creó desde el Explorador de Windows. La carpeta OMGBash se creó con el subsistema Linux bash.exe
Cuando se crea una carpeta O un archivo fuera de bash.exe, nunca puedo verlo, independientemente de los permisos y la propiedad.
Para mostrar la información que tuve que usar Cygwin para mostrar los permisos de archivo, también modifiqué los permisos para ver si aparecería la carpeta. (Las dos ventanas de comando en la parte inferior)
Captura de pantalla que muestra los permisos de carpeta, bash.exe y Cygwin:
Estoy tratando de mover todos mis scripts de Cygwin al subsistema de Linux, pero no me gusta recrear cada archivo, luego tener que copiar y pegar usando bash, luego reformatear y luego usar Dos2unix (sin aliento).
Encontré esto en GitHub para el subsistema Linux:
no se admite copiar directamente en el subsistema de Linux desde Windows, según se explica en otros tickets. Hay un directorio bajo AppData en alguna parte (no recuerdo dónde) que parece contener los archivos para el sistema de archivos WSL. Pero si coloca archivos nuevos allí o modifica archivos existentes allí, sus cambios no se reflejan correctamente dentro de WSL.
Mi mejor conjetura es que Linux necesita almacenar metadatos diferentes (y más información de almacenamiento en caché, etc., ya que su modelo de almacenamiento en disco también es diferente) sobre sus archivos que Windows, y que esto se implementa actualmente almacenando la copia maestra de la estructura del sistema de archivos de Linux en una base de datos de algún tipo, y simplemente usando el sistema de archivos de Windows como un conveniente BLOB-store para esa base de datos.
Si realmente necesita hacer esto, una solución sería escribir un script .bat o drag de drag'n'drop que haga bash.exe -c "mv% 1 / home / $ USER /". (Tendrá que hacer un trabajo inteligente con sed y tr, probablemente, para traducir% 1 a una ruta WSL válida).
Alternativamente, ¿podría colocar sus archivos en un directorio de Windows y, dentro de WSL, hacer "cd ~; ln -s / mnt / c / path / to / my / files" para que aparezcan en su homedir de WSL?
cp -r --no-preserve=all
eliminar los permisos anteriores. Aún así, si desea realizar cambios importantes, no puede usar una aplicación de Windows para editar el archivo en LinuxSubSystem. Debe editarlo en su Directorio de Windows y luego copiarlo. Ahora sé esto, es viable, PERO tenía la impresión de que el subsistema Linux era más nativo / integrado en Windows que un sistema operativo aislado
%LocalAppData%\Packages\<some-long-name-of-distro>\LocalState\rootfs
.