Linux 용 Windows Subsystem의 홈 디렉토리는 무엇입니까?


86

bashLinux 용 Windows 서브 시스템에서 시작할 때 디렉토리에 놓입니다.

/mnt/c/Users/<username>

나는이 때 ls이 디렉토리, 내가 디렉토리를 참조 Desktop, Documents등 난에 볼 수있는 C:\Users\<username>Windows 파일 탐색기를 사용하여. 이는 곳이기 때문에 bash프로그램이 시작,이 내 홈 디렉토리입니다 예상하지만 때 나는 입력하거나 cd또는 cd ~내가 가져온입니다

/home/<username>

이는 내 포함 .bashrc, .profile등 내가 리눅스 박스에 홈 디렉토리에서 찾을 기대 파일. 또한, 입력 cd ../..여기에서 나는 디렉토리를 볼 수있다 bin, etc등등, 다시 같은 리눅스 박스에서 예상.

이 모든 것에 대해 두 가지 질문이 있습니다.

  1. 정확히 무엇 /mnt/c/Users/<username>과 비교 C:\Users\<username>됩니까? 그것들은 같은 것 같습니다. 그래서 무엇 /mnt/c/입니까?
  2. /home/<username>Windows 파일 탐색기 를 사용하여 파일을 보려면 어떻게 합니까? 제가 원했던 것은 아닙니다 .-- Windows가이 Subsystem for Linux를 어떻게 구성하고 있는지 느끼려고합니다.

답변:


102

2의 경우 : 현재 경로는 이제 하나의 전역 경로가 아닌 Microsoft Store에서 설치 한 배포와 관련됩니다. 따라서 우분투의 경우 다음 위치에 있습니다.

%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

다른 배포판은 아래의 해당 폴더 아래에서 비슷한 위치에 있다고 가정합니다.

%LOCALAPPDATA%\Packages\

11
다른 사람 이이 연습을 방해 발견? 내 HOME 폴더가 리포지토리 내 데이터를위한 하나의 안전한 장소가 아니어야합니까? 이 방법을 사용하면 손상된 저장소와 호스를 다시 설치해도 전혀 보호하려고 시도하지 않고 이미 REAL / home이 있으면 숨겨집니다. 왜 데이터가 유지되지 않습니까? 이제 배포판 (WLinux)을 시도 / 사용 / 스왑하도록 권장되기 때문에 이것은 더욱 위험합니다. 누군가가이 모든 것을 생각하지 않은 것처럼 느껴집니다.
rainabba

내 경우에는 (1809) 폴더가 CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc라고
jao

2
중요 참고 : Windows 도구를 사용하여 Linux 파일을 계속 찌르지 않아야합니다. 참조 : blogs.msdn.microsoft.com/commandline/2016/11/17/… (또한 블로그 게시물 자체 참조)
coltoneakins

환상적입니다. git windows / mingw에 대한 또 다른 이유는 여전히 더 잘 작동합니다 ... 실제 일일 작업량에 대한 생각이 훨씬 많습니다. 올바르게 다시 매핑하는 방법이 있습니까?
enorl76

1
@rainabba 처음에는 홍당무에 동의하지만 약간의 생각 후에도 여전히 완전한 Ubuntu 대신 Windows를 사용하기로 선택하고 있습니다. 따라서 WSL을 Linux 도구에 액세스하는 방법으로 취급하고 있지만 여전히 Windows 파일 시스템을 일류 시민으로 취급하고 있습니다. 그래서 /mnt/c/내가 WSL에 모든 것을 저장하는 곳입니다. WSL이 LWS로 바뀌면 좋겠습니다. 즉, 우리가 모두 Windows 용 Linux 서브 시스템으로 Ubuntu를 실행하여 Ubuntu에 통합 된 완전한 Windows 10 사본을 실행한다면 정말 좋을 것입니다. 나는 그것이 훨씬 어려울 것이지만 꿈을 꿀 수 있다는 것을 알고 있습니다.
Chev

29
  1. /mnt/c와 정확히 동일합니다 C:\. WSL에서 가져 오는 구문 일뿐입니다.
  2. 에서 찾아보십시오 C:\Users\<username>\AppData\Local\Lxss\rootfs.

8
경고 : blogs.msdn.microsoft.com/commandline/2016/11/17/… 이 곳은 맞지만 아무 것도 변경하지 마십시오.
chx

6
2018 년 현재이 답변은 더 이상 유효하지 않습니다. @MichaelBond의 답변을 참조하십시오.
dr01

11
지금은에 사라 졌어요 C:\Users\[USERNAME]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_[CODE]\LocalState\rootfs\ 당신이 편집을 인식 할 수 있다면 얼마나 나쁜 당신 /수동
mementototem

복사 파스타를 통해 쉽게 액세스 할 수 있도록`% LOCALAPPDATA % \ Packages \ CanonicalGroupLimited. UbuntuonWindows_ [CODE] \ LocalState \ rootfs`
나뭇 가지

"폴더 옵션>보기 : 고급 설정 : 보호 된 운영 체제 파일 숨기기 (권장)"를 선택 취소하지 않으면 lxss 폴더가 파일 탐색기에 숨겨집니다. 그러나 숨겨져 있어도 폴더 경로에 폴더를 입력하면 파일 탐색기에서 폴더를 열 수 있습니다.
Daryn

17

마운트 된 파일 시스템 /mnt/c

  1. C : \ Users \와 비교하여 / mnt / c / Users /는 정확히 무엇입니까? 그것들은 같은 것 같습니다. 그래서 / mnt / c /는 무엇입니까?

Windows와 달리 Linux (및 Unix 기반의 다른 시스템)는 보유한 디스크 수에 관계없이 단일 폴더 구조를 사용합니다. 디스크가 여러 개인 경우이 디스크는 모두 어느 시점에서 폴더 구조에 마운트 해야합니다 .

  • 일반적으로 (시스템을 부팅하는 데 사용되는 다른) 모든 디스크가된다 장착 라는 이름의 폴더에 /mnt또는/media

WSL에는 DrvFS라는 특수 파일 시스템 유형이 있으며이 파일 시스템은 Windows에서 사용되는 디스크에 액세스 할 수 있습니다. DrvFS를 사용하여 Windows 파일 시스템뿐만 아니라 네트워크 디스크 및 기타 매체 유형도 마운트 할 수 있습니다.

  • WSL에서 기본적 C:으로 Windows 의 디스크는/mnt/c
  • 다른 디스크 (예 : D:Windows 의 디스크)가 있으면 아래에 마운트됩니다./mnt/d

에서 볼 수있는 파일 /mnt/c은에있는 것과 동일합니다 C:. 일부 파일을 수정하면 창에서도 변경 사항이 적용됩니다.

mount명령을 사용하여 다른 유형의 미디어 (예 : 이동식 드라이브 또는 네트워크 공유) 에 액세스 할 수 있습니다 .


의 위치에 대해 /home/<username>

  1. Windows 파일 탐색기를 사용하여 / home /의 파일을 어떻게 볼 수 있습니까? 제가 원했던 것은 아닙니다 .-- Windows가이 Subsystem for Linux를 어떻게 구성하고 있는지 느끼려고합니다.

WSL에서 모든 Linux 파일 시스템은 Windows 폴더 아래에 있습니다. 폴더의 위치는 사용중인 Windows 버전 및 WSL 배포에 따라 다릅니다.

  • WSL의 초기 버전은 리눅스 파일 시스템을%LOCALAPPDATA%\Lxss\rootfs
  • Windows Store 16215 (2017 년 중반)부터 Windows 스토어에서 설치된 WSL 배포 는와 같은 폴더를 사용합니다 %LOCALAPPDATA%\Packages\...\LocalState\rootfs. 패키지 이름은 배포판에 따라 다릅니다 (예 : 우분투의 경우 데비안의 경우와 다릅니다)
  • lxRunOffline 또는 WSL-DistroLauncher 와 같은 다른 도구를 사용하여 설치된 Linux 배포판 은 Linux 파일 시스템을 어느 위치 에나 저장할 수 있습니다.

많은 옵션을 확인 하여 WSL 폴더의 위치를 ​​알 수 있습니다 . 예를 들어, 가장 쉬운 옵션은 lxRunOffline 을 사용 하여 설치 폴더를 아는 것입니다.

## You can use lxrunoffline to check which WSL distributions have installed
## using:   lxrunoffline list

C:\> lxrunoffline list
backup
Ubuntu-18.04    

## And you can use it to get the location of any of these WSL installations
## using:   lxrunoffline get-dir -n <name of distribution>

C:\> lxrunoffline get-dir -n backup
c:\wsl\installed\backup

C:\> lxrunoffline get-dir -n Ubuntu
C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

설치 폴더의 위치를 ​​알고 있으면 /home/<username>은 아래에 <installation folder>\rootfs\home\username있습니다.

  • 예를 들어 설치 폴더가 c:\wsl\ubuntu
  • ~ /home/<username>에있다c:\wsl\ubuntu\rootfs\home\username

참고 : Linux와 Windows는 모두 파일 권한을 다른 방식으로 저장합니다. 오늘날 WSL DrvFS는 Linux 권한을 Windows에서 볼 수있는 파일에 첨부 된 스트림 (메타 데이터)으로 저장합니다. Windows 프로그램을 사용하여 Linux 파일을 수정하지 않는 것이 좋습니다. 일부 Windows 응용 프로그램은 통지없이 Linux 권한손상시킬 수 있습니다.


5

현재 사용중인 Windows 빌드에 따라 다를 수 있지만 2018 년 Windows 10 Pro 64 비트 버전 1709 (OS 빌드 16299.522) 및 버전 1803 (OS 빌드 17134.165)에서 Windows 용 아이러니하게 업데이트되었습니다. 입력 중]] 위치는 여전히

C:\Users\<username>\AppData\Local\lxss

트릭은 폴더 옵션에 "보호 된 운영 체제 파일 숨기기 (권장)"를 선택하지 않은 경우 폴더를 C:\Users\<username>\AppData\Local볼 수 lxss없는 경우입니다.

그러나 \lxssWindows 탐색기 주소 표시 줄에 추가 하면 폴더로 이동합니다.

(주 나는 않았다 하지%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc나 마이클 채권의 대답에 언급 아무것도 비슷한)

최신 정보

내가 설치 한 레거시 WSL이 있습니다. 이제 WSL은 Microsoft 스토어 앱을 통해 제공됩니다. Ubuntu 18.04 LTS 용 버전이 있으며 현재 Linux의 다른 특징 (예 : 데비안)도 있습니다. 최신 상태를 유지 하려면 레거시 WSL 을 설치 제거 하고 Microsoft store 버전을 설치하십시오 .

홈 폴더의 위치는 설치 한 이러한 WSL 유형에 따라 다릅니다.


4
  1. WSL bash 콘솔을 사용하여 홈 디렉토리에서 "test_here.txt"와 같은 임의의 특정 이름을 가진 파일을 작성하십시오.
  2. 그런 다음 Windows 탐색기를 사용하고 검색 상자를 사용하여 test_here.txt 파일을 검색하십시오.
  3. 찾은 파일에서> 마우스 오른쪽 단추를 클릭하고 파일 위치 열기를 클릭하십시오.

나는 이것을 시도했다. 작동하지 않습니다. 파일을 검색 할 수 없습니다. 그러나 파일을 / mnt / c / Users / <username>에 놓으면 분명히 작동합니다.
Eamonn Kenny

WSL을 사용해 보았지만 더 이상 사용하지 않습니다. 나는 그다지 유용하지 않다. (저는 WSL 대신 매일 cygwin을 사용하는데 매우 유용합니다.) 더 이상 확인할 수 없습니다. 죄송합니다.
Ellis

rootfs를 검색하면 작동합니다. 그런 다음 거기서부터 unbuntu 파일 시스템을 탐색 할 수 있습니다.
tigr

2

Windows 10 pro가 데비안 / 우분투 / OpenSUSE $ HOME을 Windows의 시작 메뉴에 고정하는 4 단계 :

  1. 시작 메뉴에서 파일 탐색기 시작
  2. 검색 창이 아닌 주소 표시 줄에 % LOCALAPPDATA %를 입력하십시오.
  3. 검색 창에서 $ HOME 디렉토리 이름을 찾으십시오. 제 경우에는 ekenny였습니다. 이것에는 약 3 가지 버전이 있지만 실제로는 긴 경로를 가진 버전을 원합니다.
  4. 홈 디렉토리를 마우스 오른쪽 단추로 클릭하고 "Pin to Start"를 클릭하십시오.

이제 홈 디렉토리가 시작 메뉴에 고정되었습니다. 바로 가기를 만들려고했지만 이해할 수없는 곳은 아닙니다.


0

/etc/environment우분투 16.04를 사용하여 Windows 10 NTFS 저장소 를 찾아야했습니다 . 나는 그것을 여기에서 발견했다.

C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • Windows 명명법으로 변경 /mnt/c/했습니다 C:\.
  • 또한 모든 항목을 변경 /하는 \같은 이유.
  • USER_NAMEWindows 사용자 이름 으로 바꿔야 합니다.
  • sudo -H NautilusWSL에 저장된 사용자 파일을 볼 수있는 권한을 얻는 데 사용해야 했습니다.
  • Windows 응용 프로그램을 사용하여 WSL에서 Linux 파일을 업데이트하지 마십시오 . 리눅스 데이터가 손상 될 수 있습니다 .

Linux (Ubuntu 16.04) 측면에서 명명법은 다음과 같습니다.

$ sudo cat /mnt/c/Users/USER_NAME/AppData/Local/Packages/CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc/LocalState/rootfs/etc/environment

PATH="/mnt/e/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export LIBGL_ALWAYS_INDIRECT=Yes
export DISPLAY=localhost:0.0

0

최신 Windows 10 Insider (고속 링 : Windows 10 빌드 19025.1)를 사용하면 배포판을 네트워크 드라이브로 탑재 할 수 있습니다. WSL은로 액세스 가능하며 wls$경로는 배포 이름 ( wsl -l -q)입니다.

예를 들어 net use Z: \\wsl$\Debian /PERSISTENT:YES


이것이 WSL2로 제한되어 있습니까? 1903 년부터 Windows 내에서 WSL 파일 구조의 내용을 탐색 할 수 있다고 생각했습니다. 이 변경으로 맵 네트워크 위치를 만들 수 있었을 것입니다.
Ramhound

내가 쓴대로 WSL2에 대해 확신이 없습니다. WSL2 (빌드 18432)를 소개하고 WSL 2가 지원하는 배포판이 있습니다.이 기능은 WSL2와 함께 나타나며 모든 배포판에서 작동하기를 바랍니다.
새끼

1909 (WSL2)는 18363.476이며 18432 (Insider Preview 20H1)가 아니라면 20H1 빌드에만 있습니까?
Ramhound

-1

Bash에서 Windows 파일 탐색기에서 현재 디렉토리를 보려면 다음을 입력하십시오.

explorer .

"."를 빼지 마십시오. 현재 폴더에서 Windows 탐색기가 열리고 나머지 모든 Windows 시스템과 관련된 모든 위치를 볼 수 있습니다.


기여해 주셔서 감사하지만 BSL에서만 작동하지만 WSL (Linux의 경우 Windows 하위 시스템)에서는 작동하지 않습니다.이 질문에 관한 것입니다. 답변을 삭제 하시거나 다운 투트 될 수 있습니다.
rmcsharry

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