Programing

Cygwin을 사용하여 C : \의 디렉토리로 이동하는 방법은 무엇입니까?

lottogame 2020. 3. 2. 12:59
반응형

Cygwin을 사용하여 C : \의 디렉토리로 이동하는 방법은 무엇입니까?


PyQt4 를 설치하려고 하므로 엉망이 될 수 있습니다. 설치 안내서는 Sip 을 설치해야한다고 말했습니다 . Sip설치 하는 마지막 단계 make install명령 을 사용하는 것 입니다. Windows에는 그 기능이 없으므로 찾아 보았고 Cygwin을 설치한다고 말한 모든 것이 있습니다. 그래서 나는했다. 하지만 ... 모금에 있습니다 C:\Python31\sip.

Cygwin 명령에서 이것을 실행할 수 있습니까? 그렇다면 어떻게해야합니까?

아니면 일반 Windows 명령 프롬프트에서 실행할 수 있습니까? 그렇다면 어떻게해야합니까?


사용하다:

cd /cygdrive/c

cygwin으로 많은 것을 도와주는 것을 추가하겠습니다. 새로운 시스템을 설치할 때마다 항상 이렇게합니다

ln -s /cygdrive/c /c

이것은 (홈 디렉토리에) 라는 새로운 파일과 심볼릭 링크만듭니다./cygdrive/c/c

그런 다음 쉘 에서이 작업을 수행 할 수 있습니다

cd /c/Foo
cd /c/

매우 편리합니다.


cd c: cygwin에서 현재 지원됩니다


귀하는 이미 답변을 수락했지만 방금 Cygwin에서도 다음이 작동한다고 언급했습니다.

cd "C:\Foo"

나는 그 cd /cygdrive/c방법이 더 낫다고 생각 하지만 때로는 당신도 그렇게 할 수 있다는 것을 아는 것이 유용합니다.


이 작업을 자주 수행하려면 다음과 같이 .bashrc 파일에 별칭을 추가하십시오.

alias cdc='cd /cygdrive/c'
alias cdp='cd /cygdrive/p'

그런 다음 명령 행에 입력하면됩니다.

cdc

.bashrc에 변수를 정의하십시오.

export C=/cygdrive/c

그럼 당신은 사용할 수 있습니다

cd $C/

탭이 자동 완성됩니다 (끝에 /를 포함하십시오)


당신은 사용할 수 있습니다

cd C:/Users/../..

관련 메모에서 다음을 좋아할 수도 있습니다.

shopt -s autocd

이것은 단지 디렉토리에 입력하여 디렉토리를 CD 수 있습니다

[user@host ~]$ /cygdrive/d
cd /cygdrive/d
[user@host /cygdrive/d]$ 

지속적으로 만들려면 ~/.bashrc


당신은 이것을 시도 할 수 있습니다

/cygdrive/c/directoryname

HOME 폴더에 "overrideBashCdForWindowsPaths"라는 파일을 작성하십시오. 다음 줄을 해당 파일에 붙여 넣고 저장하십시오.

#!/bin/bash

function cd() {
    CD_PATH="$(history | tail -1 | sed -e "s,.*${FUNCNAME[0]}\s*,,g")"

    if [ -z "${CD_PATH}" -o "${CD_PATH}" = "~" ]; then
        CD_PATH="${HOME}"
    fi

    builtin cd "$(cygpath "$CD_PATH")"
}

다음으로 HOME 폴더에있는 동안 터미널에 다음 명령을 입력하십시오.

echo ". overrideBashCdForWindowsPaths" >> .bashrc

터미널을 닫고 새 터미널을 엽니 다. 이제 간단히 입력하여 해당 Windows 폴더로 쉽게 변경할 수 있습니다

cd C:\Python31\sip

스크립트는 마지막 명령을 읽고 경로를 추출하여 Cygwin의 경로 변환 도구로 전달합니다. 함수 "cd"를 명명함으로써 우리는 일종의 '재정의'Bash의 내장 된 "cd"를 마지막 행에서 실제 호출을 위임합니다.


여기서 언급 할 가치가있는 것은 Cygwin이 cygpath여전히 Cygwin에서 실행되는 Bash 스크립트에서 간격이 지정된 Windows 경로를 올바르게 처리하지 못한다는 것입니다. 비결은 CygwinBash 스크립트에서 따옴표를 해석 하는 방법을 이해하는 것 입니다.

다음은 작동 하지 않습니다 .

#!/bin/bash
TBDIR="/cygdrive/c/Program\ Files\ \(x86\)/MyDir/"

if [ -d "${TBDIR}" ]; then 
    echo "Found MyDir directory at: ${TBDIR}"
    cd "$TBDIR"
else 
    echo "MyDir program directory not found!"
    echo "Wrong DIR path: ${TBDIR}"
    exit 1
fi

그러나 이것은 효과가 있습니다.

#!/bin/bash
# Cygwin-ism: No quotes!
TBDIR=/cygdrive/c/Program\ Files\ \(x86\)/MyDir/

if [ -d "${TBDIR}" ]; then 
...

내가 아는 한, 현재을 사용하는 알려진 해결 방법이 없으므로 cygpathbash 스크립팅 컨텍스트에서 공백을 올바르게 처리 할 수 ​​있지만 스크립트에서 따옴표를 사용할 수 있습니다.


내가 좋아하는 것은 : cd C:

다음과 같이 리눅스를 느끼게하려면 :

ln -s /cygdrive/c/folder ~/folder

이것을 다음과 같이 사용하십시오 : ~/folder/..


$cd C:\

> (이 줄이 나타나면 Enter 키를 누르십시오)

이제 C 드라이브에 있습니다.

참고 URL : https://stackoverflow.com/questions/1850920/how-to-navigate-to-a-directory-in-c-with-cygwin



반응형