답변:
Windows 10 버전 1903부터 Windows에서 Linux 파일에 액세스 할 수 있습니다 \\wsl$\. explorer.exe .bash에서 실행 하거나 \\wsl$\탐색기의 주소 표시 줄에 직접 입력 할 수 있습니다
Windows 10 버전 1903의 WSL의 새로운 기능을 참조하십시오 .
AppData 폴더를 통해 Linux 파일에 액세스해서는 안된다는 경고가 여전히 나타납니다 !
이전 버전의 Windows 10의 경우 아래를 참조하십시오.
WSL 루트 파일 시스템의 Linux 파일은 NTFS 확장 속성에 저장된 POSIX 권한으로 특별히 만들어집니다. 거기 fsutil file layout lxss\root에서 $EA스트림 을 실행 하여 볼 수 있습니다 . win32 앱은 Linux 및 파일 메타 데이터에 대해 아무것도 모르기 때문에 Windows에서 직접 파일을 만들면 문제가 발생합니다.
예를 들어, Windows 앱 / 도구를 사용하여 배포 루트 아래에서 파일을 열거 나 작성 및 / 또는 수정하는 경우 문제가 발생합니다. 파일이 Windows 도구로 작성되었으므로 파일에 Linux 파일 메타 데이터가 없습니다. (예 : 권한, 소유자, 액세스 / 업데이트 타임 스탬프 등). 따라서 Linux (Linux 파일 메타 데이터 만 수신하는)의 경우 파일이 비어 있거나보고 되지 않거나 일부 메타 데이터가있을 수 있지만 해당 메타 데이터는 파일의 세부 정보를 반영하지 않아 파일 내용이 손상 될 수 있습니다.
따라서 MS는 대담하게 경고했다.
어떤 상황에서도 Windows 앱, 도구, 스크립트, 콘솔 등을 사용하여 Linux 파일을 생성 및 / 또는 수정하지 마십시오.
Windows에서 Linux 파일을 작성 / 변경하면 데이터가 손상되거나 Linux 환경이 손상되어 배포판을 제거하고 다시 설치해야합니다!
Linux에만 관련된 파일은 WSL에서만 작성해야합니다. 두 시스템 모두에 액세스 할 수있는 파일을 작성 하려면 WSL 루트 외부에 파일을 작성하고 다음 /mnt과 같이 마운트 포인트를 통해 WSL에서 액세스하십시오./mnt/drive/path
Windows 파일 시스템에서 파일을 작성하고 대소 문자를 구분하려면 다음을 사용하십시오.
fsutil file setCaseSensitiveInfo <directory name> enable
깃발은 또한 확인할 수 있습니다 fsutil file queryCaseSensitiveInfo <directory name>
우분투에서 폴더를 만들고 Windows에서 폴더에 액세스 할 수 없습니다. 그러나 당신은 반대를 할 수 있습니다.
에서 Windows 드라이브에 액세스 할 수 있습니다 /mnt. 그렇게 ls /mnt하면 모든 드라이브가 표시됩니다. 따라서 / mnt / c는 C 드라이브의 경로입니다. 마찬가지로 /mnt/c/Users/username/DesktopBash에서 데스크톱에 액세스 할 수 있습니다.
Bash를 사용하여 원하는 경로에 도달하고 Windows 파일 및 폴더에 액세스하십시오. Windows 파일에 빠르게 액세스하는 방법에 대한 자세한 내용을 보려면 심볼릭 링크를 사용하십시오. 자세한 내용은 여기를 참조 하십시오.
생각 반전 : Windows 앱 및 도구를 사용하여 파일을 작성하고 Bash에서 액세스하려면 Windows 파일 시스템에서 해당 파일 등을 작성하고 Bash에서 액세스 / 복사하십시오.
다음은 PowerShell에서 파일을 만든 다음 Bash를 호출하여 생성 된 파일을 홈 폴더에 복사 한 다음 bash를 호출하여 파일의 내용을 쓰는 예입니다.
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.