위로 올라가지 않고 이전 디렉토리로 어떻게 변경할 수 있나요?

위로 올라가지 않고 이전 디렉토리로 어떻게 변경할 수 있나요?

나는 현재 트리 아래에 있고 루트에서 서로 다른 두 경로 사이를 오가며 많은 작업 시간을 보내고 있습니다. cd사용자를 자신이 있던 마지막 디렉터리로 이동시키는 것에 대한 논쟁이 있다면 내 인생이 훨씬 더 쉬울 것이라는 생각이 들었습니다 .

즉, 내가 다음에 속한다면:

/etc/foo/bar/baz/moo

그런 다음 다음을 입력합니다.

cd /var/lib/fubarred_app/blargh/logs

전체 경로를 다시 입력하지 않고도 첫 번째 디렉터리로 돌아갈 수 있기를 바랍니다.

각 위치에서 충분한 명령을 사용하기 때문에 메모리 키가 잘리지 않습니다. 돌아가서 원하는 경로를 찾는 것이 직접 입력하는 것만큼이나 어렵습니다.

이전 디렉터리로 이동할 수 있는 짧은 명령이 있나요?

답변1

명령

cd -

대부분의 주류 쉘에서 필요한 스왑을 수행합니다. 더 오래된 변형은

cd "$OLDPWD"

이전 작업 디렉터리가 포함된 환경 변수를 사용합니다.


그만큼POSIX 매뉴얼 페이지cd언급:

설명

위 단계를 실행하는 동안 PWD 환경 변수가 변경되면 OLDPWD 환경 변수도 이전 작업 디렉터리(즉, cd 호출 직전의 현재 작업 디렉터리)의 값으로 변경됩니다.

피연산자

  -  하이픈이 피연산자로 사용되는 경우 이는 다음 명령과 동일합니다.

cd "$OLDPWD" && pwd 

이전 작업 디렉터리로 변경된 다음 해당 이름을 씁니다.

답변2

브라이언의 답변 외에도 스택과 같은 디렉토리를 구축하는 pushd및 도 있다는 점을 언급할 가치가 있습니다. popd이는 Windows NT에서도 사용할 수 있습니다. 그러나 모든 쉘에서 사용할 수 있는 것은 아닙니다.

예를 들어, 세 개의 서로 다른 디렉터리로 이동할 수 있으며 다음을 호출할 때 항상 스택을 볼 수 있습니다 pushd.

charon:~ werner$ pushd Documents/
~/Documents ~

charon:Documents werner$ pushd ../Movies/
~/Movies ~/Documents ~

charon:Movies werner$ pushd ../Downloads/
~/Downloads ~/Movies ~/Documents ~

popd그리고 연속으로 세 번 호출하면 스택에 있는 해당 디렉터리에 역순으로 도달하게 됩니다. 동시에 스택은 다시 비워집니다.

charon:Downloads werner$ popd
~/Movies ~/Documents ~

charon:Movies werner$ popd
~/Documents ~

charon:Documents werner$ popd
~

charon:~ werner$ popd
-bash: popd: directory stack empty

Zsh를 사용하는 경우; 여기 cd에는 의 항목을 스택에 자동으로 푸시하는 AUTO_PUSHD 옵션이 있습니다 .

답변3

"점프" 프로그램이 있습니다

  • 자동 점프(기본 기능으로 유지됨)
  • j2 (분명히 일부 고급 기능으로는 유지 관리되지 않음)
  • (고급 기능을 갖춘 "j"의 유지 버전)

이를 통해 모든 종류의 디렉터리 탐색이 쉬워집니다. 경로의 일부를 제공하여 사용하면 제대로 작동합니다.

귀하의 경우

~$ j baz 
/etc/foo/bar/baz/moo$

~$ j bla 
/var/lib/fubarred_app/blargh/logs$

이 프로그램에 원하는 문자를 지정할 수 있습니다. "j"는 전통입니다 :)

j2와 z는 여러 검색어를 지원합니다.

~$ j baz src
/home/me/projects/baz/repository/trunk/src$

... 그리고 더 많은 옵션이 있습니다.

~$ j -l  # list directories by "frecency"(frequency + recency) score
~$ j -r PATTERN # match by rank only, not recency
~$ j -t PATTERN # match by recency only, not rank

답변4

게다가 cd -그리고cd $OLDPWD

이전에 입력했던 명령어 CTRL-R를 몇 글자 누르고 입력하면 이력 검색을 이용할 수 있습니다 . 반복해서 cd누르면 CTRL-R오래된 일치 항목이 표시됩니다.

변경할 경로가 세 개 이상인 경우 이 방법이 더 유용합니다.

관련 정보