윈도우와 WSL 리눅스 사이에서 파일 안전하게 공유하기

WSL을 쓰면 윈도우와 리눅스가 서로의 파일을 볼 수 있습니다. /mnt/c와 \\wsl$ 접근법, 어디에 파일을 둬야 빠른지, 권한·줄바꿈 충돌까지 안전한 파일 공유 원칙을 정리했습니다.

왜 필요한가 · WSL은 윈도우와 리눅스가 서로의 파일에 접근할 수 있어 편리하지만, 잘못된 곳에 프로젝트를 두면 느려지거나 권한·줄바꿈 문제로 시간을 잃기 쉽기 때문입니다.

누구에게 · WSL을 막 설치하고 윈도우와 리눅스 양쪽에서 같은 파일을 다뤄야 하는 입문자

읽고 나면 · 양방향 파일 접근 경로를 알고, 작업 위치를 올바르게 정해 성능과 권한·줄바꿈 문제를 피할 수 있습니다.

핵심 요약

  • 리눅스에서 윈도우 파일은 /mnt/c 경로로, 윈도우 탐색기에서 리눅스 파일은 \\wsl$(또는 \\wsl.localhost)로 접근합니다.
  • 리눅스 프로젝트는 리눅스 홈(~)에 두는 것이 빠르고, /mnt/c에서의 작업은 상대적으로 느립니다.
  • 줄바꿈(CRLF/LF)과 파일 권한 차이가 충돌의 흔한 원인이므로 미리 주의해야 합니다.

WSL의 가장 큰 매력 중 하나는 윈도우와 리눅스가 서로의 파일을 볼 수 있다는 점입니다. 윈도우에서 받은 파일을 리눅스에서 바로 열고, 리눅스에서 만든 결과물을 탐색기로 꺼내 쓸 수 있습니다. 그런데 이 편리함을 아무 생각 없이 쓰다 보면 “왜 이렇게 느리지”, “왜 권한 오류가 나지”, “왜 스크립트가 안 돌지” 같은 문제에 부딪힙니다. 대부분 파일을 어디에 두고 어디서 작업하느냐에서 갈리는 문제입니다.

이 글에서는 양방향 접근 경로를 먼저 정리하고, 어디서 작업해야 빠른지, 그리고 권한과 줄바꿈에서 생기는 함정을 어떻게 피하는지 순서대로 다룹니다.

리눅스에서 윈도우 파일에 접근하기: /mnt/c

WSL 안에서 윈도우 드라이브는 /mnt 아래에 연결됩니다. C 드라이브는 /mnt/c, D 드라이브는 /mnt/d처럼 매핑됩니다. 예를 들어 윈도우의 C:\Users\내이름\Downloads 폴더는 리눅스에서 이렇게 접근합니다.

cd /mnt/c/Users/내이름/Downloads
ls

윈도우 경로의 역슬래시(\)는 리눅스에서 슬래시(/)로 바뀌고, 드라이브 문자는 소문자가 됩니다. 윈도우에서 내려받은 파일을 리눅스 도구로 잠깐 열어보는 정도라면 이 경로가 편리합니다.

윈도우에서 리눅스 파일에 접근하기: \wsl$

반대 방향도 됩니다. 윈도우 탐색기 주소창에 아래를 입력하면 설치된 WSL 배포판들의 파일 시스템이 보입니다.

\\wsl$

최신 환경에서는 다음 주소도 같은 역할을 합니다.

\\wsl.localhost

여기서 배포판(예: Ubuntu)을 열고 들어가면 리눅스의 홈 디렉터리까지 탐색기로 둘러볼 수 있습니다. 리눅스에서 만든 결과 파일을 윈도우 프로그램으로 열거나, 탐색기로 끌어다 옮길 때 유용합니다. 즐겨찾기에 고정해 두면 매번 주소를 치지 않아도 됩니다.

어디서 작업해야 빠른가: 파일의 “집”을 정하라

여기서 가장 중요한 원칙이 나옵니다. 리눅스에서 빌드·실행하는 프로젝트는 리눅스 홈(~) 안에 두세요. WSL2는 리눅스 자체 파일 시스템에서의 작업이 빠르고, /mnt/c 같은 윈도우 영역을 넘나드는 작업은 상대적으로 느립니다. 작은 파일 하나를 여닫는 정도는 차이를 못 느끼지만, 수많은 파일을 다루는 빌드나 패키지 설치에서는 체감 속도가 크게 벌어집니다.

그래서 보통 이렇게 정리합니다.

  • 리눅스에서 코드를 돌리는 프로젝트 → 리눅스 홈(예: ~/projects/내앱)에 둔다.
  • 윈도우 프로그램이 주로 다루는 문서·자료 → 윈도우 폴더에 둔다.
  • 잠깐 옮기거나 확인할 때만 /mnt/c\\wsl$를 오간다.
mkdir -p ~/projects
cd ~/projects

✍️ 운영자 한마디

처음엔 윈도우 폴더 쪽에 프로젝트를 두고 작업했는데 이상하게 굼떠서 한참 헤맸습니다. 리눅스 홈 안으로 옮기고 나서야 ‘아, 그래서 파일을 어디에 두느냐가 중요하구나’ 하고 체감했습니다.

줄바꿈(CRLF) 주의

윈도우와 리눅스는 줄바꿈을 표현하는 방식이 다릅니다. 윈도우는 줄 끝에 보이지 않는 문자 두 개(CRLF)를, 리눅스는 하나(LF)를 씁니다. 윈도우에서 편집한 셸 스크립트를 리눅스에서 실행했을 때 이상한 오류가 난다면, 줄바꿈 문제일 때가 많습니다.

대표적으로 스크립트 첫 줄(#!/bin/bash 같은)이 CRLF로 끝나면 “명령을 찾을 수 없다”는 식의 모호한 오류가 납니다. 이때는 줄바꿈을 LF로 바꿔 주면 됩니다.

sudo apt install dos2unix
dos2unix myscript.sh

편집기를 쓴다면 줄바꿈을 LF로 저장하도록 설정하고, Git을 쓴다면 줄바꿈 자동 변환 설정을 점검해 두는 것이 근본적인 예방책입니다.

권한과 큰 파일 충돌 주의

윈도우와 리눅스는 파일 권한을 다루는 방식도 다릅니다. /mnt/c 아래 윈도우 파일에는 리눅스식 세밀한 권한(읽기·쓰기·실행 비트)이 그대로 적용되지 않을 수 있어, 권한에 민감한 도구가 경고나 오류를 낼 때가 있습니다. 반대로 탐색기에서 \\wsl$로 들어가 리눅스의 시스템 파일을 직접 수정하면 권한 구조가 꼬일 수 있습니다.

그래서 다음을 기억해 두면 충돌을 크게 줄일 수 있습니다.

  • 권한이 중요한 작업(실행 비트, 소유권 등)은 해당 파일을 리눅스 홈에 두고 리눅스 터미널에서 처리한다.
  • 탐색기로는 일반 작업 파일만 다루고, 리눅스 시스템 영역은 손대지 않는다.
  • 용량이 매우 큰 파일을 양쪽 경로를 넘나들며 반복 복사하면 느리고 디스크도 두 배로 쓰게 되니, 작업할 쪽에 한 번만 두고 거기서 다룬다.

초보자가 자주 막히는 부분

  • 프로젝트를 /mnt/c에 두고 “WSL이 느리다”고 오해 — 느린 건 WSL이 아니라 윈도우 영역을 넘나드는 파일 접근일 때가 많습니다. 리눅스 홈으로 옮기면 대개 해결됩니다.
  • 윈도우 편집기로 저장한 스크립트가 안 돎 — 줄바꿈(CRLF) 문제일 가능성이 큽니다.
  • 권한 오류가 자꾸 난다 — 권한이 중요한 파일을 /mnt/c에 두고 있는지 확인하세요.
  • 탐색기로 리눅스 시스템 파일을 직접 수정 — 일반 작업 파일만 다루고 시스템 영역은 터미널에서 처리하세요.
  • 큰 파일을 양쪽으로 계속 복사 — 작업할 쪽에 한 번만 두는 편이 빠르고 안전합니다.

파일 공유 점검 체크리스트

  • 리눅스에서 돌리는 프로젝트를 리눅스 홈(~)에 두었다
  • 윈도우 파일은 /mnt/c, 리눅스 파일은 \\wsl$ 로 접근하는 법을 안다
  • 스크립트 줄바꿈을 LF로 맞췄거나 변환 방법(dos2unix)을 안다
  • 권한이 중요한 작업은 리눅스 쪽에서 처리하기로 했다
  • 큰 파일을 양쪽 경로로 반복 복사하지 않기로 했다

정리

WSL의 파일 공유는 강력하지만, “어디에 두고 어디서 작업하느냐”를 정해 두지 않으면 속도와 권한, 줄바꿈에서 시간을 잃기 쉽습니다. 핵심은 단순합니다. 리눅스에서 돌리는 것은 리눅스 홈에 두고, 양쪽을 오갈 때만 /mnt/c\\wsl$를 쓰며, 줄바꿈과 권한 차이를 미리 의식하는 것입니다. 이 원칙만 지켜도 대부분의 흔한 충돌은 피할 수 있습니다.

자주 묻는 질문

프로젝트 파일을 윈도우 폴더에 둬야 하나요, 리눅스 홈에 둬야 하나요?
리눅스에서 빌드·실행하는 개발 프로젝트라면 리눅스 홈(~) 안에 두는 것을 권합니다. /mnt/c 같은 윈도우 폴더에서 작업하면 파일 접근이 상대적으로 느려 빌드나 의존성 설치가 더디게 느껴질 수 있습니다.
윈도우 탐색기에서 리눅스 파일을 직접 지워도 되나요?
탐색기로 \\wsl$ 경로에 접근해 파일을 다룰 수는 있지만, 권한이 걸린 시스템 파일을 직접 건드리면 문제가 생길 수 있습니다. 일반 작업 파일 정도만 다루고, 시스템 영역은 리눅스 터미널에서 처리하는 것이 안전합니다.

이 글은 입문자 기준으로 이해하기 쉽게 정리했으며, 내용은 운영 과정에서 순차적으로 보완될 수 있습니다. 환경에 따라 화면이나 명령이 다르게 보일 수 있으니, 막히는 부분이 있으면 isense2021@gmail.com 로 알려주세요.