모든 경로에서 Cygwin의 /cygdrive 접두사를 제거하는 방법은 무엇입니까?

모든 경로에서 Cygwin의 /cygdrive 접두사를 제거하는 방법은 무엇입니까?

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

방법 1

mount -c /
mount -m > /etc/fstab

방법 2

echo - / cygdrive acl > /etc/fstab

답변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를 작성합니다.

관련 정보