우분투 터미널에서 컴퓨터를 시작할 때마다 특정 디렉토리로 전환하는 데 상당한 시간을 소비하고 있습니다. 이 과정을 더 쉽게 할 수있는 방법이 있습니까? 사용할 수있는 단축 키 또는 빠른 디렉토리 변경 (전화기의 단축 다이얼 등)이 있습니까?
eg:
cd 1:Changes to saved directory one
우분투 터미널에서 컴퓨터를 시작할 때마다 특정 디렉토리로 전환하는 데 상당한 시간을 소비하고 있습니다. 이 과정을 더 쉽게 할 수있는 방법이 있습니까? 사용할 수있는 단축 키 또는 빠른 디렉토리 변경 (전화기의 단축 다이얼 등)이 있습니까?
eg:
cd 1:Changes to saved directory one
답변:
두 가지 옵션이 있습니다.
bash 터미널을 열 때마다 특정 디렉토리에있게하려면 ~/.bashrc파일을 편집 하고 행을 추가하십시오 ( cd Directory예 :) cd ~/Desktop.
여러 개의 바로 가기를 원한다면 항상 전역 변수를 사용할 수 있습니다. 전역 변수 ~/.bashrc는 다음 export a=/tmp과 같이 파일 에서 설정할 수 있습니다. 그러면 다음을 수행 cd $a할 수 있습니다 /tmp.
.bashrc파일을 편집 한 후 터미널을 다시 시작하거나 새 파일을 열어야합니다.
source ~/.bashrc또는 더 짧게 사용할 수 있습니다 . ~/.bashrc.
또한 살펴보면 autojump이전에 방문한 디렉토리가있는 데이터베이스를 빌드 한 다음 바로 이동할 수 있습니다. 예를 들어
/home/user/this/long/and/annoyingly/deep/directory/workstuff
한 번 방문한 경우 다음으로 이동할 수 있습니다.
j workstuff
또는
j stuff
부분 일치와도 작동하기 때문입니다. 둘 이상의 디렉토리가 일치하면 가장 많이 방문한 디렉토리로 이동하고 원하는 디렉토리가 아닌 경우 명령을 반복하여 두 번째 디렉토리로 이동하십시오.
그러나 더 좋아집니다! 디렉토리가 있다면
/home/user/stuff
그리고 당신은
j stuff
그리고 TabTabTab당신은 (가장 방문한 순서대로)
$ j stuff__
stuff__1__/home/user/this/long/and/annoyingly/deep/directory/workstuff
stuff__2__/home/user/stuff
원하는 디렉토리 번호를 누르면됩니다.
설치하려면 사용 sudo apt-get install autojump하고 추가해야합니다.
source /usr/share/autojump/autojump.bash
당신에게 ~/.bashrc.
자세한 내용은 https://github.com/wting/autojump(src 에서 최신 버전을 얻는 방법)
Bash 별칭 은 일반적으로 명령을 실행하는 바로 가기를 만드는 데 유용합니다.
에서 ~/.bashrc별칭을 만들려면 다음과 같은 행을 추가합니다 :
alias jump1='cd /long/path/name/that/is/frequently/used'
터미널을 닫았다가 다시 열거 나을 실행하십시오 source ~/.bashrc.
이제부터는 jump1긴 cd명령을 실행 하기 위해 실행할 수 있습니다 .
또한보십시오:
좋은 답변이 이미 있지만 파일 시스템의 깊은 경로에있는 디렉토리간에 매우 빠르게 이동할 수 있는 이전 pushd및 popdBash 내장 기능의 완전성에 대해 언급했다고 생각했습니다 . burger.ga 에서 autojump언급 한 책갈피 와 달리 , 사용하여 작성된 디렉토리 스택 은 임시입니다.pushd
는 GNU으로 매뉴얼 노트 , pushd및 popd배쉬 내장 명령은있는 임시 디렉토리 스택을 구성하는 데 사용됩니다
최근에 방문한 디렉토리 목록. 푸시 된 기본 제공은 현재 디렉토리가 변경 될 때 디렉토리를 디렉토리에 추가하고, 팝업 기본 제공은 스택에서 지정된 디렉토리를 제거하고 현재 디렉토리를 제거 된 디렉토리로 변경합니다. 내장 된 dirs는 디렉토리 스택의 내용을 표시합니다.
그것은 익숙해 조금 걸리지 만, 거기 유용한 자습서의 많음이 거기있는 이 블로그 이와 이 사이트에 예를 들어. Bash 맨 페이지에 포함 된 명령에 대한 별도의 맨 페이지는 없지만 빠른 참조를 위해 GNU Bash 페이지를 볼 수 있습니다 .
분명한 설명에 이 매우 유용한 기사 와 정확히 내가 사용하는 방법 pushd과 popd:
첫째, 사용 dirs또는 dirs -l스택에리스트 디렉토리 및 dirs -c스택을 취소 할 수 있습니다.
어떤 의미에서 당신은 입력하여 반환하려는 위치를 북마크
pushd /home/mike/Pictures/Canon/2012_07_01
그런 다음 스택에 디렉토리를 더 추가 할 수 있으므로 3 개의 지정된 폴더와 ~홈 폴더 가 포함 된 아래와 같은 디렉토리 목록이 표시됩니다 .
dirs
~/Downloads/folder/interest ~/Music/artist/album ~ ~/Pictures/Canon/2012_07_01
실제로 popd스택에서 디렉토리를 제거 하므로 곧바로 사용할 필요가 없습니다 . 가장 좋은 방법 pushd은 스택을 회전하여 디렉토리간에 계속 전환하고 원하는대로 순서를 지정할 수 있도록하는 것입니다. 유용한 스택 회전에 대한 자세한 내용 은 Bash 맨 페이지를 참조하십시오 .
위 dirs목록 과 같이 스택 배열이 있으면 pushd +3특정 Pictures 폴더로 전환하여 스택 위에 배치합니다 ( ~디렉토리 스택에서 계산하지 않기 때문에 +3이 아니라 +3이 아님 ).
pushd +3
~/Pictures/Canon/2012_07_01 ~/Downloads/folder/interest ~/Music/artist/album ~
프롬프트가 읽습니다.
~/Pictures/Canon/2012_07_01$
cd를 사용하여 디렉토리 스택에 추가 된 폴더 이외의 다른 폴더 가 디렉토리 스택을 pushd변경 하더라도 스택에서 폴더를 제거하지 않고도이 작업을 계속 수행 할 수 있습니다 .
디렉토리 스택을 원하는 순서대로 정렬하면 디렉토리 popd를 빠르게 순환 한 다음 홈 폴더로 돌아갈 수 있습니다. 예를 들어, 다음으로 Pictures돌아갈 수 있습니다 Downloads.
popd
~/Downloads/folder/interest ~/Music/artist/album ~
프롬프트가 읽습니다.
~/Downloads/folder/interest$
일반적으로 이것의 장점은 디렉토리 스택과 그 안의 항목 순서를 설정 pushd한 다음 각 디렉토리에서 편집 할 파일이 3 개 있다고 말하면 popd제거하면서 각 디렉토리로 즉시 돌아갈 수 있다는 것입니다 디렉토리 스택에서. 마지막으로으로 popd돌아갑니다 ~. 특히 깊은 디렉토리가있을 때 특히 유용하며이를 사용하여 디렉토리 스택을 빠르게 이동하도록 디렉토리 스택을 설정할 수 있습니다.
또한이 질문에는 명령 행에서 작업 할 때 유용한 몇 가지 팁이 포함되어 있습니다.
더 빠른 명령 줄 방법이 있지만 개인적으로이라고 불리는 노틸러스 확장을 사용하여 개인적으로 다시 명령합니다 nautilus-open-terminal.
먼저 패키지를 설치하고 nautilus-open-terminal노틸러스로 즐겨 찾는 폴더를 북마크하십시오. 노틸러스 3.6. *에서는 톱니 바퀴 메뉴로 이동 하여이 위치에 북마크 지정을 선택해야합니다 .

그런 다음 노틸러스 책갈피를 사용하여 즐겨 찾는 디렉토리에서 더 빠르게 이동하고 빈 공간을 마우스 오른쪽 버튼으로 클릭 하고 터미널 에서 열기를 선택하십시오 .

이제 명령 행과 파일 관리자 모두 선호하는 디렉토리에 빠르게 액세스 할 수 있습니다.
anc는 해당 사용 사례에 맞게 설계되었습니다.
https://github.com/tobimensch/anc
다음은 README.md에서 발췌 한 내용입니다.
# make the current directory the default anchor:
$ anc s
# go to /etc, then /, then /usr/local and then back to the default anchor:
$ cd /etc; cd ..; cd usr/local; anc
# go back to /usr/local :
$ anc b
# add another anchor:
$ anc a $HOME/test
# view the list of anchors (the default one has the asterisk):
$ anc l
(0) /path/to/first/anchor *
(1) /home/usr/test
# jump to the anchor we just added:
# by using its anchor number
$ anc 1
# or by jumping to the last anchor in the list
$ anc -1
# add multiple anchors:
$ anc a $HOME/projects/first $HOME/projects/second $HOME/documents/first
# use text matching to jump to $HOME/projects/first
$ anc pro fir
# use text matching to jump to $HOME/documents/first
$ anc doc fir
# add anchor and jump to it using an absolute path
$ anc /etc
# is the same as
$ anc a /etc; anc -1
# add anchor and jump to it using a relative path
$ anc ./X11 #note that "./" is required for relative paths
# is the same as
$ anc a X11; anc -1
# using wildcards you can add many anchors at once
$ anc a $HOME/projects/*
# use shell completion to see a list of matching anchors
# and select the one you want to jump to directly
$ anc pro[TAB]
전체 공개 : 저는 anc의 저자입니다.
이를 위해 bash 함수 세트를 작성하여 .bash_profile에 추가했습니다.
goto(){
cd $(getFolders $1)
}
gf(){
getFolders $1
}
getFolders (){
local folderList=(
'alias'
'Description of alias'
'/path/to/alias/folder'
'alias2'
'Description of alias2'
'/path/to/alias2/folder'
)
local moved="0"
local count=0
# Returns the path to the project
while [ "${folderList[count]}" != "" ]
do
if [ "$1" == "${folderList[count]}" ]; then
echo ${folderList[$(( $count + 2 ))]}
moved="1"
fi
count=$(( $count + 3 ))
done
# Returns all project names
if [ "$moved" != "1" ]; then
count=0
while [ "${folderList[count]}" != "" ]
do
echoc 6 ${folderList[count]}
echo - ${folderList[count+1]}
count=$(( $count + 3 ))
done
fi
}
getFolders를 사용하면 각 폴더의 속기, 설명 및 위치 목록이 있습니다. 축약 형으로 getFolders를 사용하면 폴더 위치가 출력됩니다. 매개 변수없이 getFolders를 호출하여 사용 가능한 폴더 및 해당 설명 목록을 얻을 수 있습니다.
폴더 경로를 얻는 예
getFolders alias
출력
/path/to/alias/folder
사용 가능한 폴더를 가져 오는 예.
getFolders
출력
alias
- Description of alias
alias2
- Description of alias2
gf는 getFolders의 지름길입니다
gf alias2
출력
/path/to/alias2/folder
goto는 선택한 폴더로 cd하는 간단한 방법입니다.
goto alias
산출
CD가 / path / to / alias / folder에서 실행되었습니다
/ path / to / alias / folder>
Unix와 Linux의 핵심에는 서로 연결 가능한 간단한 재사용 가능한 기능이 있습니다. 이 방법은 선택한 위치로 이동하는 것이 아니라 별칭으로 경로를 반환하는 함수이므로 선호합니다. 이 기능을 사용하여 cd와 같은 지점에서 해당 경로에 이르는 모든 작업을 수행 할 수 있습니다.
.bashrc 또는 .bash_profile에서 CDPATH환경 변수 설정을 고려하십시오 . CDPATH는 PATH변수와 같은 다른 콜론으로 구분 된 형식을 사용 cd하며 디렉토리를 찾는 데 바로 가기를 허용합니다. 예를 들면 다음과 같습니다.
$ mkdir -p /tmp/foo/bar/baz
$ CDPATH='/tmp/foo/bar'
$ cd baz
/tmp/foo/bar/baz
특정 디렉토리에 대한 고유 한 바로 가기를 설정할 수 있습니다. 예를 들어 중첩 디렉토리로 이동하려면 일반적으로
cd / home / dir-1 / dir-2 / dir3 / dir4 / dir5 / dir6 / dir-target
일반적으로 cd 명령을 사용한 다음 모든 디렉토리 이름을 입력하거나 TAB 단추를 사용하여 입력을 건너 뛰어도되지만 여전히 몇 분이 걸립니다.
따라서 시간을 절약하기 위해 터미널에서 별칭 을 만들 수 있습니다 . 별칭을 설정하는 일회성 작업입니다.
별명 dir-target = '/ home / dir-1 / dir-2 / dir3 / dir4 / dir5 / dir6 / dir-target'
지금, 당신은해야 사용할 별명 ( DIR-대상을 대상 디렉토리로 이동합니다).
내가 찾은 가장 빠른 방법은 xdFrank B. Brokken이라는 네덜란드 인이 작성한 "eXchange Directories"프로그램입니다.
파일 시스템에서 입력 한 약어로 해석 할 수있는 모든 경로를 찾아서 작동합니다 (예 : 해당 폴더가 시스템에 존재 ulb하는 /usr/local/bin경우 에 해당 될 수 있음) .
% cx ulb
Multiple Solutions:
1: /usr/lib/binfmt.d/
2: /usr/local/bin/
2를 누르면에 /usr/local/bin있습니다.
그것은 실제로 오래된 소프트웨어이며 더 이상 원래 위치에서 사용할 수 없으며 저자와의 접촉이 없으므로 손실되지 않도록 Github 저장소에 넣습니다.
이를 위해 DirB (Directory Bookmarks)를 사용합니다. 아주 좋아요! http://www.linuxjournal.com/article/10585
나는 내 취향에 맞게 내 것을 수정하고 사용하기 쉽고 명확합니다.