경로(예: 내 폴더)에 디렉토리를 추가하여 임의의 디렉토리에서 입력할 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 경로=(~)아래와 동일한 규칙이
CDPATH
Z 셸에 적용됩니다. 이는 검색 경로를 지정하는 데 더 편리한 구문입니다. 기존 경로에 추가하려면 다음을 사용하십시오.CD경로+=(~)Z 셸은
:q
C 셸과 유사하지만 이 구문을 사용하면 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"