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

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

cd -같은 곳으로 돌아가는 경우가 많습니다 . Bash에서 이 작업을 여러 번 수행하려면 어떻게 해야 합니까? 아니면 zsh나 다른 도구가 이를 지원합니까?

답변1

zsh에는 옵션이 있습니다 auto_pushd. 이 옵션을 사용하면 이전 디렉터리로 돌아갈 수 cd있습니다 .pushdpopd

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

Bash에서는 다음 cd을 수행할 수 있습니다 pushd.

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

다루기 힘든

oh-my-zsh는 이에 대한 몇 가지 정말 좋은 기능을 제공합니다(적어도 oh-my-zsh가 이것을 설정했다고 생각합니다).

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

dirs최근 방문한 디렉토리를 표시하는 zsh 내장 명령입니다.

또한 모든 번호는 등 으로 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개의 디렉터리 위로 이동됩니다.

관련 정보