.sh 파일의“cd-”가 주소를 인쇄하는 이유 하지만 왜 “cd-“가 주소를

“cd-“를 사용하여 폴더를 전환합니다. 처럼:

cd /etc/
cd -   

하지만 왜 “cd-“가 주소를 인쇄할까요? 주소 인쇄를 중지하려면 어떻게해야합니까?



답변

SUS4는 말합니다 :

피연산자로-를 사용하는 경우 다음 명령과 같습니다.

    cd "$OLDPWD" && pwd

이전 작업 디렉토리로 변경 한 다음 이름을 씁니다.

따라서 동작의 절반을 인쇄하지 않으려면 첫 번째 비트를 직접 수행하십시오.

cd "$OLDPWD"

또는 물결표 확장

cd ~-

당신이 이것을 필요로한다면, pushd/ popd는 이식성이 적은 선택이지만 더 낫습니다.


답변

stdout을 다음과 같이 블랙홀로 리디렉션하십시오.

cd - > /dev/null

답변

가장 간단한 방법은 사용하지 않는 것입니다. 별도의 쉘에서 명령을 실행하십시오.

(cd /etc/; ... )

이것은 ‘main’쉘의 현재 작업 디렉토리를 변경하지 않습니다. 여기 OLDPWD에는 많은 cd명령 을 사용할 수 있기 때문에 일반적으로 사용하는 것보다 강력 합니다.

(cd /etc; ... ; cd /tmp; ... )