Windows에서 폴더를 만든 다음 Windows 10 WSL의 Bash에서 액세스


2

Windows에서 Ubuntu를 실행 중입니다.

newFolder루트 디렉토리에서 호출 된 Windows에서 폴더를 생성 한 C:\Users\myuser\AppData\Local\lxss\root\Newfolder다음 Bash에서 ls폴더를 생성하면 방금 생성 된 새 폴더가 표시되지 않습니다.

Windows에서 폴더와 파일을 만든 다음 Bash에서 액세스 할 수 있도록이 문제를 어떻게 해결할 수 있습니까?


답변:


3

최신 정보:

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 환경이 손상되어 배포판을 제거하고 다시 설치해야합니다!

Windows 앱 및 도구를 사용하여 Linux 파일을 변경하지 마십시오

Linux에만 관련된 파일은 WSL에서만 작성해야합니다. 두 시스템 모두에 액세스 할 수있는 파일을 작성 하려면 WSL 루트 외부에 파일을 작성하고 다음 /mnt과 같이 마운트 포인트를 통해 WSL에서 액세스하십시오./mnt/drive/path

Windows 파일 시스템에서 파일을 작성하고 대소 문자를 구분하려면 다음을 사용하십시오.

fsutil file setCaseSensitiveInfo <directory name> enable

깃발은 또한 확인할 수 있습니다 fsutil file queryCaseSensitiveInfo <directory name>

Windows 10 WSL에서 Linux / Ubuntu 파일에 액세스하는 방법을 참조하십시오 .


Windows EOL 변환에서 WSL에서 파일에 액세스하는 데 문제가 있습니까? 그렇다면 Atom 이나 VScode 와 같은 크로스 플랫폼 텍스트 편집기 또는 NotePad ++
JW0914

@ JW0914 번호 누가 텍스트 파일에 대해 이야기합니까? 내가 인용 한 것을 읽었습니까? 문제는 Windows에서 생성 된 모든 파일에 Linux 메타 데이터가없고 비어있는 것으로보고 될 수 있으며 (OP가 관찰 한 것임 ) 존재하지 않거나 일부 메타 데이터가있을 수 있지만 메타 데이터가 파일의 세부 정보를 반영하지 않을 수 있다는 것입니다 파일 내용이 손상되었습니다 . EOL과 관련하여 오늘날에는 메모장 조차도 열 수있는 반면 워드 패드와 IE는 수십 년 동안 열 수 있습니다
phuclv

나는 그 지적에 대해, 때문에 두 번째 덕분에 첫 번째 인용 블록을 간과 =]에 관해서는 "EOL 다음도 요즘 메모장 워드 패드와 IE는 수십 년 동안 열 수있는 반면를 열 수있는 능력을 가지고에 대한" Windows에서 편집, 그래 개방, LF EOL을 유지 관리하는 동안 아니요 (노트북이 최신 업데이트로 최종적으로 해당 기능을 수신했을 것으로 생각되지만).
JW0914

1
@ JW0914 메모장에는 LF (및 CR) 끝 파일을 편집 할 수있는 기능이 있으며 많은 새로운 기능이 있습니다 . 실제로는 많은 사람들이 사용하지 않으며 유용한 기능이 많지 않지만 메모장 유지 관리는 전임 직업이 아니지만 빈 작업이 아닙니다.
phuclv

3

우분투에서 폴더를 만들고 Windows에서 폴더에 액세스 할 수 없습니다. 그러나 당신은 반대를 할 수 있습니다.

에서 Windows 드라이브에 액세스 할 수 있습니다 /mnt. 그렇게 ls /mnt하면 모든 드라이브가 표시됩니다. 따라서 / mnt / c는 C 드라이브의 경로입니다. 마찬가지로 /mnt/c/Users/username/DesktopBash에서 데스크톱에 액세스 할 수 있습니다.

Bash를 사용하여 원하는 경로에 도달하고 Windows 파일 및 폴더에 액세스하십시오. Windows 파일에 빠르게 액세스하는 방법에 대한 자세한 내용을 보려면 심볼릭 링크를 사용하십시오. 자세한 내용은 여기를 참조 하십시오.


1

생각 반전 : 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.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.