모든 경로에서 Cygwin의 / cygdrive 접두사를 어떻게 제거합니까?


36

Windows 용 Git과 함께 제공되는 bash 쉘에서 Cygwin으로 전환하고 이상한 문제가 발생합니다. 누군가는 /cygdrive/모든 길 을 더하는 것이 좋은 생각 이라고 생각하지만, 나는 그것이 끔찍한 추악한 생각이라고 생각합니다. 나는 이것을 추가함으로써 이것을 부분적으로 고칠 수 있다고 결정할 수 있었다.

mount --change-cygdrive-prefix /
export HOME=/c/Users/BZISAD0

내 .bashrc에 있지만 PATH 변수를 보면 모든 것이 여전히 / cygdrive /에 있습니다. PATH를 수정하는 스크립트를 작성할 수는 있지만 이미 수행하고있는 것보다 훨씬 더 복잡합니다. 거기는 더 좋은 방법이있을거야, 난이 꽤 확신이기 때문에 망할 놈의 bash 쉘에서 사용하는 (AFAIK) Cygwin에서 이전 버전과는 어떻게 든하도록 구성된 되지 앞에 추가 /cygdrive사방. 그렇다면 "Suck"노브를 어떻게 0으로 돌릴 수 있습니까?

게리 라슨 만화

답변:


39

/ etc를 움켜 쥐면 인터넷 검색이하지 않는 링크 가 나타납니다 . 파일에서 이것을 제어 할 수 있습니다 /etc/fstab. 라는 줄을 추가하십시오.

none / cygdrive binary 0 0

문제가 해결되어야합니다. .bashrc에 더 이상 kludgey 수정이 없으며 엉망인 $ PATH가 없습니다.


2
이 방법을 사용했는데 이제 시도 할 때 ls /Windows 드라이브가 나타나지 않습니다. 를 사용할 때도 아닙니다 ls -l /. 이것이 예상됩니까? 고칠 수 있습니까? 이것이 내가 fstab에있는 것입니다 :none / cygdrive binary,posix=0,user,acl 0 0
— Tibi

에 Windows 드라이브를 가져올 수있는 방법이 있는지 몰랐습니다 /. 전에 했어? (또는 /cygdrive/??) 나는 항상 어떤 Windows 드라이브를 사용할 수 있는지 알아야한다는 사실에 항상 살았으며 어쨌든 거의 사용하지 않습니다.
— iconoclast

1
예, ls /cygdriveWindows 드라이브를 나열해야합니다. 예를 들어, 출력은 c/ e/ f/입니다. 드라이브가 폴더처럼 취급되는 방식에 유의하십시오.
— Kat

1
이 절반 만 작동합니다. 두 개의 마운트 (실제 /및 cygdrive)는 일종의 오버레이입니다. 즉 /c, 등을 사용하여 드라이브를 얻을 수는 있지만의 일부로 나열되지는 않습니다 /. 나는 목록 /을 cygdrive만들 때 실제 내용을 숨기고 있다고 생각합니다 . 이것이 기술적으로 정의되지 않은 동작인지 궁금하고 무언가를 깨뜨릴 수 있습니다. 어쨌든, 내가하고있는 것을 볼 수 있기를 선호하므로 선택하고 /mnt있습니다.
— underscore_d

1
@Tibi /로 cd 한 다음 mkdir c (또는 드라이브 이름이 무엇이든)를 수행하면 드라이브 마운트 포인트가 빈 디렉토리로 덮어 쓰지 않고 ls에 표시됩니다. 누가 이런일이 일어날 거라고 생각 했 겠어?
— barksdml

10

방법 1

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

방법 2

echo - / cygdrive acl > /etc/fstab

예


이 작업을 수행하기 전과 후에 (방법 1) /cygwin64 루트 디렉토리를 참조 cd /c했지만 작동하지 않았습니다. 일을하기 위해서는 cd /c해야했다 mount c: /c.
— MM

/c결코 작동하지 않았어야했는데 내 솔루션은 결코 제안하지 않았습니다.
— Steven Penny

2
"경로에서 / cygdrive를 제거하는 방법"은 "/ cygdrive / c 대신 / c가 작동하는 방법"(및 다른 문자의 경우와 유사)을 의미합니다. 내 경로는 이제 실제로 / cygdrive / c / bla 대신 / c / bla를 보여줍니다
— MM

1
2.9.0 (0.318 / 5 / 3) 기준 2017-09-12 10:18 x86_64 Cygwin에서 방법 1을 수행하면 사용자가 cd /c또는 cd c:. 사용 cd /정지하면 cygwin64의 디렉토리로 이동합니다.
— Marcel Wilson

1

예, 마운트 가 작동합니다.

mount -c /

에 PATH해당 항목이 여전히 있으면 /cygdrive재부팅해야합니다.

또한를 참조 하는 PATH설정 이 있는지 확인 /etc/profile하십시오 /cygdrive.


Cygwin을 다시 시작 하시겠습니까, 아니면 실제로 전체 컴퓨터를 다시 부팅 하시겠습니까?
— iconoclast

Cygwin 기반 프로세스를 모두 종료해야한다고 생각합니다 . 가장 쉬운 방법은 컴퓨터를 재부팅하는 것입니다.
— Mikel

나는 일반적으로 내 자신의 질문에 대한 답변을 찾을 때 다른 사람들의 답변을 선호하지만, 당신은 재부팅 (또는 그 시뮬레이션)이 필요하고 광산은 cygwin의 문서에서 찾은 것이기 때문에 나와 함께 갈 것입니다.
— iconoclast

재부팅하지 않고 작업했다면 꼭!
— Mikel

그러나 컴퓨터를 재부팅하면이 변경 사항이 사라집니다. fstab에 저장된 내용으로 돌아갑니다.
— rustyx
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.