Windows용 Git과 함께 제공되는 bash 쉘에서 Cygwin으로 전환했는데 이상한 문제가 발생했습니다. 어떤 사람들은 /cygdrive/
모든 경로에 추가하는 것이 좋은 생각이라고 생각하지만, 나는 그것이 정말 추악한 생각이라고 생각합니다. 다음을 추가하면 이 문제가 부분적으로 해결될 수 있다고 판단했습니다.
mount --change-cygdrive-prefix /
export HOME=/c/Users/BZISAD0
내 .bashrc에 있지만 PATH 변수를 보면 모든 항목에 여전히 /cygdrive/가 포함되어 있습니다. PATH를 수정하는 스크립트를 작성할 수 있을 것 같지만, 이는 이미 하고 있는 것보다 더 문제가 될 것입니다. 더 나은 방법이 있을 것입니다. Git의 bash 쉘은 이전 버전의 Cygwin(AFAIK)을 사용하고 어떻게든 다음과 같이 구성되어 있기 때문에 꽤 확신합니다.아니요어디서나 프론트로드됩니다 /cygdrive
. 그렇다면 어떻게 해야 할까요?"흡입" 손잡이를 0으로 돌리시겠습니까?
답변1
/etc에서 발생 항목을 찾습니다.링크Google 검색이 표시되지 않습니다. 파일에서 이를 제어할 수 있다는 것이 밝혀졌습니다 /etc/fstab
. 한 줄만 추가하세요.
none / cygdrive binary 0 0
그리고 문제는 해결되어야 합니다. 더 이상 .bashrc의 지저분한 수정이나 지저분한 $PATH가 없습니다.
답변2
답변3
cygpath(Unix 및 Windows 형식 경로 변환 또는 시스템 경로 정보 출력)는 어떻습니까?
$ pwd
/cygdrive/c/Windows/System32
$ cygpath -w $(pwd)
C:\Windows\System32
답변4
언급되지 않은 또 다른 요점은 Cygwin DLL을 사용하는 다양한 방식이 위에서 언급한 대로 다른 구성을 사용한다는 것입니다. 한 예로 MSYS를 기반으로 하고 Cygwin을 사용하는 Windows용 Git이 있습니다.
이러한 버전에서 "Unix" 경로에 액세스하는 통일된 방법은 /proc/cygdrive
; 를 사용하는 것입니다 . cygpath -u D:\
return /d
또는 /cygdrive/d
.
cygpath
공개 접두사는 스위치를 사용하여 얻을 수도 있습니다 -U
.
추신: 이것은 질문에 대한 답변이 아니라 근본적인 질문(외관적인 문제 외에)을 묻기 때문에 이 CW를 작성합니다.