CDPATH

CDPATH

경로(예: 내 폴더)에 디렉토리를 추가하여 임의의 디렉토리에서 입력할 Downloads때마다 .cd Downloads~/Downloads

답변1

CDPATH

사용 중인 쉘이 CDPATH환경 변수를 지원하는 경우 다음을 설정할 수 있습니다.

CDPATH=.:$HOME

쉘 시작 스크립트에서. 그런 다음 cd <directory>명령을 사용할 때 해당 명령 <directory>이 현재 디렉터리의 하위 디렉터리로 존재하지 않을 때마다 명령은 이를 홈 디렉터리의 하위 디렉터리로 찾습니다(즉, ~/<directory>일치하는 항목이 발견되면 해당 디렉터리로 이동됩니다).

디렉토리 이름은 경로 검색을 시작 ./하거나 ../억제하며 물론 절대 경로 이름도 동일하지만 일부 쉘에서만 이를 매뉴얼에 문서화합니다. cd ./Downloads경로는 검색되지 않습니다.

CDPATH다른 쉘에는 약간 다른 규칙이 있습니다.

  • .Almquist, Korn 및 Bourne Again 쉘은 변수가 있는 경우 명시적으로 검색하지 않으므로 현재 디렉토리 검색의 예상 동작을 유지하려면 CDPATH변수에 이전 항목이 명시적으로 포함되어야 합니다 ..
  • 대조적으로, Z 쉘은 .먼저 검색하고,~하지 않는 한 CDPATH.항목을 명시적으로 포함하거나 POSIX_CD쉘 옵션을 설정하여 사용할 수 있습니다.

    CDPATH=$HOME

    그리고 여전히 현재 디렉터리를 검색하는 동작이 발생합니다. (경로에서 검색할 시기를 제어할 수 있는 이 방법은 .4DOS/NDOS와 같은 명령 해석기를 사용하는 MS/PC/DR-DOS 사용자가 찾을 수 있는 오래된 아이디어입니다.고통스러울 정도로 친숙한.)
  • 와타나베 쉘 검색. 마지막, 에 나열된 디렉토리를 확인한 후 CDPATH.

나는 의도적으로 CDPATH 변수를 내보내지 않고 그 효과를 대화형 셸로 제한하려고 합니다. 복잡한 스크립트를 실행할 때 CDPATH를 활성화하면 예상치 못한 부작용이 발생할 수 있습니다.

cdpath

이를 위해 Z 쉘에서는 cdpath대신 변수를 사용할 수 있습니다 CDPATH. C 쉘에도 변수가 있지만 cdpath전혀 없습니다.CDPATH

cdpath실수로 내보내기가 어려운 배열형 쉘 변수입니다. 배열이므로 콜론으로 구분된 형식보다 조작하기가 더 쉽습니다 CDPATH.

C 쉘 및 TENEX C 쉘

C 셸에서는 다음을 실행할 수 있습니다.

cdpath=(~) 설정
.C 쉘은 cdpath쉘 변수를 보기 전에 자동으로 먼저 쉘 변수를 검색하므로 이를 포함할 필요가 없습니다 . 기존 경로에 추가하려면 다음을 사용하십시오.

cdpath=($cdpath:q ~) 설정
이로 인해 :q파일 이름 확장이나 명령 대체의 영향을 받지 않도록 할당의 변수 확장이 인용됩니다.

C 쉘은 .먼저 검색한 다음 cdpath.

Z 쉘

Z 셸에서는 다음을 실행할 수 있습니다.

CD 경로=(~)
아래와 동일한 규칙이 CDPATHZ 셸에 적용됩니다. 이는 검색 경로를 지정하는 데 더 편리한 구문입니다. 기존 경로에 추가하려면 다음을 사용하십시오.

CD경로+=(~)
Z 셸은 :qC 셸과 유사하지만 이 구문을 사용하면 Z 셸이 필요하지 않습니다.

또한 Z 쉘은 자동 cdpath으로 CDPATH.

답변2

Downloads특정 디렉토리에 액세스 하려는 경우 ~/Downloads해당 디렉토리에 심볼릭 링크를 넣을 수 있습니다.

ln -s ~/Downloads .

이제 CD 다운로드가 어디에서든 ~/Downloads로 이동하도록 하려면 cd해당 기능을 사용하여 이를 재정의할 수 있습니다. 예를 들어 다음을 포함합니다 .bashrc.

cd() { if [ "$1" = Downloads ]; then builtin cd ~/Downloads; else builtin cd "$1"; fi; }

그러나 표준 명령의 의미를 변경하는 것은 권장하지 않습니다. 이로 인해 많은 혼란이 발생할 수 있습니다. 정말로 더 짧은 것을 원한다면 이라는 별칭을 만들 cdDownloads거나 그냥 downloads그곳으로 이동할 수도 있습니다.

alias downloads="cd ~/Downloads"

관련 정보