디렉토리 이름을 표시하지 않고 이전 디렉토리로 cd

디렉토리 이름을 표시하지 않고 이전 디렉토리로 cd

이것답변cd -Bash로 변경하기 전에 디렉토리의 약어를 알려주십시오 . 여기에는 한 가지 중요한 문제가 있습니다. 변경된 디렉토리를 인쇄하고, 다음 줄의 프롬프트에서 해당 디렉토리가 반복되기 때문에 화면 공간을 낭비합니다.

나는 그것을 할 수 있다는 것을 알고 있습니다. cd $OLDPWD해당 답변에 언급되어 있지만 cd - >/dev/null더 많은 입력이 필요합니다.

bash매뉴얼 페이지 에는 다음과 같이 나와 있습니다.

...또는 -가 첫 번째 인수이고 디렉토리 변경이 성공하면 새 작업 디렉토리의 절대 경로 이름이 표준 출력에 기록됩니다.

내가 -먼저 논쟁하는 사람이 되지 않으려면 어떻게 해야 합니까? 선택적 매개변수를 사용하여 cd? 입력을 최소화하기 위해 에코를 억제하거나 다른 방법을 사용하십시오.아니요사용하는 모든 컴퓨터에서 기능/별칭을 정의해야 합니까?

답변1

cd첫 번째 매개변수만 고려되며 다른 모든 매개변수는 무시됩니다. 이러한 옵션 중 어느 것도 이전 경로 이름의 반향에 영향을 주지 않습니다(문서에는 -@이 효과가 있을 수 있지만 내 시스템에서는 잘못된 옵션입니다).

cd -에 비해 입력할 문자 수가 적 거나 로 리디렉션 될 수 있는 별칭/함수를 사용하고 싶지 않다면 다음 /dev/null에서 특수 물결표 확장을 사용하는 것이 좋습니다 bash.

cd ~-

bash매뉴얼 페이지 에서 :

물결표 접두사가 "~-"인 경우 쉘 변수 OLDPWD(설정된 경우)의 값이 대체됩니다.

bash이것은 또 다른 특별한 의미를 만들어낸 영역 인 것 같습니다 . 물결표 확장은 일반적으로 $DIRSTACK, by pushd, popd및 조작/연구 와 함께 작동하며, 해당 디렉토리를 가져오기 위해 ( 여기서 N은 푸시백할 레벨 수) 사용한 경우 다른 명령( ) 에서도 dirs사용할 수 있습니다 . 다른 명령).cp ~-/somefile .pushd~Ncd


그런데, 여러 컴퓨터에 계정이 있고 ssh를 사용하여 한 곳에서 로그인한다고 가정하면 다음을 추가하는 것을 고려해야 합니다 ~/.bashrc.

if [ -f ~/.bash_common ]; then
    . ~/.bash_common
fi

그런 다음 각 컴퓨터에 scp"푸시" 하기 위해 작업 컴퓨터에 스크립트를 설치합니다 . bash_common이를 통해 최소한의 오버헤드로 여러 컴퓨터에 공통 기능을 추가하고 공유할 수 있습니다.

관련 정보