여러 수준의 중첩된 디렉터리를 탐색하는 것은 종종 고통스럽습니다. Firefox에서는 북마크가 있기 때문에 쉽습니다. 따라서 파일을 북마크하고 싶은 것은 입력입니다.
$ go --add classes "repo/www/public/util/classes"
그런 다음 해당 디렉터리로 이동하려면 다음을 입력해야 합니다.
$ go classes
이전에도 유사한 기능을 달성하기 위해 심볼릭 링크를 사용한 적이 있지만 홈 디렉터리를 복잡하게 만들고 싶지 않았습니다. 유용할 수 있는 다른 많은 기능이 있습니다. 예를 들어, 입력을 시작한 go cl
다음 Tab을 눌러 자동 완성할 수 있기를 원합니다 . 때로는 저장소의 여러 복사본을 체크아웃하므로 프로그램에서 여러 컨텍스트를 생성하고 컨텍스트의 기본 디렉터리에 상대적인 책갈피를 설정할 수 있도록 하는 것이 유용할 것입니다.
그렇다면 내 자신의 스크립트 세트를 함께 엮기 전에 이미 비슷한 것이 있습니까?
답변1
비슷한 걸 찾고 계신 것 같아요자동 점프. 특정 디렉터리에서 보낸 시간과 관련된 "핵심 가중치" 집합을 개발하는 데 시간을 투자해야 합니다. 그런 다음 "Classes" 디렉토리에서 많은 시간을 보낸다고 가정하면 다음을 입력하여 해당 디렉토리로 바로 이동할 수 있습니다.
j cl
"키 가중치"를 볼 수 있습니다.
jumpstat
답변2
언급했듯이 별칭은 좋은 메커니즘입니다. Bash 셸에는 다음 위치로 직접 이동할 수 있는 메커니즘도 내장되어 있습니다 CDPATH
. 로 설정 하되 검색 프로그램 대신 PATH
사용합니다 .cd
$ CDPATH=:~/repo/www/public/util
$ cd classes
/home/casebash/repo/www/public/util/classes
맨페이지에서:
CDPATH The search path for the cd command. This is a colon-separated
list of directories in which the shell looks for destination
directories specified by the cd command. A sample value is
".:~:/usr".
나는 이것을 내가 가고 싶은 곳으로의 심볼릭 링크가 있는 디렉토리와 결합했습니다:
$ mkdir ~/cdshortcut
$ ln -s ~/repo/www/public/util/classes ~/cdshortcut/classes
$ CDPATH=:~/cdshortcut
/home/casebash/cdshortcut/classes
단점은 디렉토리가 제대로 보이지 않는다는 것입니다. 그러나 이는 cd -P
또는 설정을 사용하여 수정할 수 있습니다 set -P
.
답변3
나는 너무 오랫동안 쉘 북마크 도구를 찾고 있었는데, 내가 찾은 솔루션이 만족스럽지 않습니다.
그러나 결국 저는 훌륭한 범용 도구를 발견했습니다.명령줄 퍼지 파인더.
주로 파일을 "퍼지 찾기"할 수 있지만(위 링크를 통해 풍부한 애니메이션 gif 확인) 임의의 텍스트 데이터를 파일에 공급하고 해당 데이터를 필터링할 수도 있습니다. 따라서 바로가기에 대한 아이디어는 간단합니다. 우리에게 필요한 것은 경로(즉, 바로가기)가 있는 파일을 유지하고 해당 파일을 퍼지 필터링하는 것뿐입니다. 다음과 같습니다. cdg
(원하는 경우 "cd global"에서) 명령을 입력하고 북마크 목록을 가져온 다음 몇 번의 키 입력만으로 원하는 북마크를 선택한 다음 Enter 키를 누릅니다. 작업 디렉터리를 선택한 프로젝트로 변경합니다.
매우 빠르고 편리합니다. 일반적으로 원하는 항목 중 3-4글자만 입력하면 나머지는 모두 필터링됩니다. 또한 화살표 키나 Ctrl+j
/를 사용하여 목록을 탐색 할 수도 있습니다 Ctrl+k
.
이 바로가기/북마크 솔루션에 대한 자세한 기사는 다음과 같습니다.쉘에 대한 난독화된 단축키.
답변4
나 자신도 alias
자주 방문하는 긴 노선을 단축하는 경우가 많다. alias
es 그룹을 es에 넣어 bashrc
로그인할 때마다 bash가 이를 기억하도록 할 수 있습니다. 다행히 bash는 자동 완성을 위한 별칭을 추가합니다.
나는 귀하의 경우에 다음과 같은 내용을 쓸 것입니다.alias go-classes="cd ~/repo/www/public/util/classes"