잘 알려진 디렉토리로`cd`하는 데 필요한 타이핑을 줄일 수 있습니까?


11

나는 터미널을 열고 경로가 매우 긴 동일한 디렉토리에 CD를 많이 넣는 것을 발견했다.

이것은 내가 CD를 많이 쓰고 탭을 사용하여 많은 것을 가속화한다는 것을 의미합니다.

이 디렉토리에 대한 일종의 링크를 가질 수 있다면 그 디렉토리로 cd하면 깊은 중첩 디렉토리에 빠르게 들어갈 수 있습니다.

이게 가능해?


1
github 프로젝트에 대한 cd'ing 및 running과 같은 작은 (관련) 작업을 수행하는 여러 (bash) 스크립트가 git status있습니다. 또한에 일부 별칭이 .bash_profile있습니다. 정확히 당신이 요구하는 것이 아니라 관련이 있습니다.
keyser

답변:


24

복잡한 경로를 cd자주 처리하는 방법은 다음과 같습니다 .

mkdir ~/Links
ln -s /complexpath/there ~/Links

이것은 심볼릭 링크를 만들 것입니다

~/Links/there

이 새로운 사용하려면 Links효율적으로 디렉토리를 로그인 쉘이 경우 bash 당신이 명령 만 포함 ~/.profile(모든 Bourne의 스타일 쉘에 의해 사용되는 bash, ksh, zsh...)

CDPATH=~/Links:.
export CDPATH

cd, 모든 쉘에서 2 개의 디렉토리 내에서 localpathname을 찾습니다.

~/Links
.

테스트하기 위해 세션을 다시 시작할 필요가 없으며 다음을 실행하십시오.

. ~/.profile

그건 그냥 내 읽기를 의미 ~/.profile합니다. ( ~/.bashrc변경하지 않아도 동일한 변수 초기화를 반복 할 필요가 없으므로 입력하지 않아도됩니다.)

테스트 한 후에는 세션을 다시 시작할 수 있습니다;).

지금부터는 갈 때마다 다음 there을 입력해야합니다.

cd there

이것은 내가 본 가장 우아한 솔루션입니다. 나는 일반적으로 (앨리어싱과 같은 일반적인 목적지에 대한 별칭을 cdoracd $ORACLE_HOME등 ...)
bmike

Finder 인터페이스를 통해 간단한 것에 관심이있는 사람이 있습니까?
dan

11

별명을 정의하는 것은 더 긴 명령을 위해 짧은 약어를 갖는 매우 쉬운 방법입니다. 별명을 지정했으면 .bashrc 파일 (또는 다른 시작 파일)에 섹션을 작성하여 시작하는 새로운 쉘마다 별명을 다시 입력하지 않아도됩니다.

.bashrc에서 :

alias ws4='ssh qsv-rhws4'
alias httpdlog='cd /var/log/httpd/'
alias EC2='ssh -i BMTestEC2.pem ec2-user@xxxxxxxx.compute.amazonaws.com'

기타

로그 아웃했다가 다시 (또는 그냥 실행 . ~/.bashrc) 이제 입력 만하면 httpdlogCD가 실행됩니다. 또는 ws4실제로 ssh 명령 등을 수행합니다.

따라서 홈 디렉토리가 엉망인 것처럼 보이게하는 빈 링크를 대량으로 만들 필요가 없습니다.


10

autojump 또는 z를 사용해보십시오 .

두 가지 중 하나를 설치 한 후에 cd는 보통과 같이 주변에서 가장 많이 방문한 디렉토리를 배우고 경로의 일부만 입력하여 해당 디렉토리로 이동할 수 있습니다.

$ cd /very/long/path/foobar
$ cd
$ z foobar
$ echo $PWD
/very/long/path/foobar

나는 둘 중 z를 선호합니다.


autojump에 대해서는 모르지만 'z'스크립트는 중요합니다!
Kris

7

autojump 및 z와 비슷하지만 더 나은 IMHO와 유사한 fasd 를 강력히 권장 합니다. 웹 사이트에서 :

Fasd ( "fast"와 유사)는 명령 줄 생산성 향상 도구입니다. Fasd는 POSIX 쉘의 파일 및 디렉토리에 빠르게 액세스 할 수 있도록합니다. autojump, z 및 v와 같은 도구에서 영감을 얻었습니다. Fasd는 액세스 한 파일과 디렉토리를 추적하므로 명령 줄에서 빠르게 참조 할 수 있습니다.

fasd라는 이름은 기본 제안 별명 f (파일), a (파일 / 디렉토리), s (쇼 / 검색 / 선택), d (디렉토리)에서 유래합니다.

Fasd는 "frecency", 즉 "frequency"와 "recency"에 의해 파일과 디렉토리의 순위를 정합니다. "frecency"라는 용어는 Mozilla에서 처음 만들어졌으며 Firefox (링크)에서 사용되었습니다.


4

별명을 작성할 수도 있습니다. 다음을 .bashrc 또는 .aliases와 같은 것으로 던져 넣으십시오.

alias shortcut='cd ~/path/to/deep/deep/deep/directory/'

그런 다음 파일이있는 파일이 sourced 인지 확인하십시오 . 내 별칭은 .bashrc에 있으며 .bash_profile 에서이 줄을 사용합니다. source ~/.bashrc


2

편의성 심볼릭 링크를 추가하면 특별한 디렉토리에 적합하지만 매우 빨리 관리하기가 어려워집니다. 훨씬 더 나은 해결책은 환경 변수 CDPATH 사용할 수 bash있으며 다른 쉘에서이 목적으로 만 사용하는 것입니다.

CDPATHPATH디렉토리 이름을 찾을 수 있는 콜론으로 구분 된 장소 (예 :) 입니다. 절대 및 상대 경로 이름을 모두 포함 할 수 있습니다. 나는 다음과 같이 설정했다 export CDPATH=".:..:$HOME/work/repos:$HOME/projects:<etc>".

이 설정을 사용하면 cd pdftools 어디에서나 입력 할 수 있으며로 이동합니다 ~/projects/pdftools. 심볼릭 링크를 사용하면 cd ~/pdftoolsHOME 디렉토리에 없으면 입력 해야합니다. 하위 디렉토리로 바로 가기 할 수도 있습니다 cd pdftools/bin.

..내에서 CDPATH저를 입력 할 수 있습니다 cd sisterdir대신 cd ../sisterdir예상 수 있듯이 난 아무데도 새로운 디렉토리를 만들 때 등 CDPATH그들은 자동으로 찾을 수 있습니다 cd- 새 심볼릭 링크 또는 별칭을 만들 필요합니다.

bash_completion예를 들어 데비안 시스템과 같이 배포 된 파일 을 사용하면이 기능이 더 좋아집니다 . OS X 상자와 함께 제공되지 않으므로 사본을 가져 와서 제대로 작동합니다. (로 가져 brew오거나 여기 에서 수동으로 다운로드 하십시오 .)이 파일은 명령 줄 완성에 대한 개선 사항을 정의하여 입력 할 수 cd pdf<TAB>있고 pdftools디렉토리는 어디에서나 찾을 있습니다 CDPATH.


1

물론 : 심볼릭 링크 만들기

ln -s /some/really/long/path/to/somewhere/ ~/shortcut
cd ~/shortcut


1

또는 생선 껍질을 설치해 볼 수도 있습니다.

http://fishshell.com/

이것은 명령에 대한 훌륭한 예측을 가지고 있습니다. 또한 지능적으로 대소 문자를 구분하지 않고 입력 할 수 있습니다.

물고기의 단점은 자체 스크립팅 언어가 있으며 배쉬와 호환되지 않는다는 것입니다.


1

"cd"를 입력 한 다음 Finder에서 해당 폴더를 터미널로 끌어서 전체 경로를 붙여 넣습니다. 아마도 우아하지는 않지만 미리 저장된 몇 가지 단축키와 모든 폴더에서 작동합니까?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.