Bash에서 여러 번 CD를 되돌릴 수 있는 방법이 있습니까?

Bash에서 여러 번 CD를 되돌릴 수 있는 방법이 있습니까?

나는 종종 cd -내가 있던 곳으로 돌아가곤 했다. Bash에서 이 작업을 여러 번 수행하려면 어떻게 해야 합니까? 아니면 zsh나 다른 도구가 이를 지원합니까?

답변1

zsh에는 옵션이 있습니다 auto_pushd. 이 옵션을 사용 cd하면 처럼 동작 합니다 pushd. 그런 다음 popd이전 디렉터리로 돌아가는 데 사용할 수 있습니다 .

~ $ setopt auto_pushd
~ $ cd /
/ $ cd /var
/var $ cd /usr
/usr $ dirs
/usr /var / ~
/usr $ popd
/var $ popd
/ $ popd
~ $

Bash에서는 별칭 cdpushd.

alias cd=pushd

cd이것의 한 가지 단점은 의 세 개의 플래그를 잃게 된다는 것입니다 . 도움말 항목 에서 cd:

-L 기호 링크를 따르도록 강제합니다
. -P 기호 링크를 따르지 않고 물리적 디렉토리 구조를 사용합니다
. -e -P 옵션이 제공되고 현재 작업 디렉토리를 성공적으로 결정할 수 없는 경우 0이 아닌 상태로 종료합니다.

cd별칭 대신 실제 내장 기능을 사용해야 하는 경우 다음 중 하나를 사용할 수 있습니다.

  • 'cd'- 명령을 인용하면 쉘이 별칭을 확인하지 않고 일반 CD를 사용하게 됩니다.
  • \cd- 백슬래시는 인용 문자입니다. 단어의 한 문자를 인용하면 쉘은 전체 단어를 인용된 것으로 처리합니다.
  • builtin cd- 별칭 대신 내장을 사용하도록 쉘에 직접 지시합니다.

답변2

편리하게 디렉토리를 북마크에 추가하고 다시 해당 디렉토리로 이동하는 빠르고 더러운 방법은 다음과 같습니다.

$ a() { alias $1="cd $PWD"; }

어딘가로 가서 다음을 입력하세요.

$ a 1

이제 현재 현재 디렉토리를 1수행하는 명령이 있습니다 . cd나중에 다음을 입력하세요.

$ 1

그리고 바로 그 디렉토리로 돌아갑니다. 나는 이것이 매우 유용하다고 생각합니다.

답변3

세게 때리다

사용 가능한 스크립트를 찾았습니다.여기, 덕분에 이 문제가 해결되었습니다. 이를 통해 입력하여 cd --최근 사용한 10개의 디렉토리를 볼 수 있습니다. 다음과 같이 보일 것입니다:

0  ~/Documents/onedir
1  ~/Music/anotherdir
2  ~/Music/thirddir
3  ~/etc/etc

~/Music/thirddir그냥 입력 하려면cd -2

zsh

oh-my-zsh는 이를 위해 정말 좋은 기능을 제공합니다(적어도 이것을 설정하는 것은 oh-my-zsh라고 생각합니다).

기본적으로 d별칭은 다음과 같습니다.dirs -v | head -10

dirszsh 내장 명령이며 마지막으로 방문한 디렉토리를 보여줍니다.

또한 는 에 대한 모든 숫자에 대해 등 1으로 별칭이 지정됩니다 .cd -19

실제로는 다음과 같이 작동합니다.

$ pwd
/home/me/Documents/gems/java_regex/lib

$ d
0       ~/Documents/gems/java_regex/lib
1       ~/Documents/gems/java_regex
2       ~/Documents/gems
3       ~/Documents
4       ~

$ 2
~/Documents/gems

$ pwd
/home/me/Documents/gems

답변4

예. 우리는 당신의 명령을 더욱 강력하게 만들 수 있습니다 cd. Bash 프로필을 사용하면 원하는 방식으로 사용자 정의할 수 있습니다.

cd디렉토리를 탐색하기 위해 여러 번 수행하는 대신 다음을 사용할 수 있습니다.별명

예를 들어 :

alias ..5="cd ../../../../.."

이렇게 하면 레벨 위로 5개의 디렉터리가 표시됩니다.

관련 정보