Bash를 사용하여 디렉토리 변경

Bash를 사용하여 디렉토리 변경

cd현재 디렉터리 내에서 디렉터리를 선택하는 더 쉬운 방법이 있는지 궁금합니다 .

예를 들어, 현재 디렉토리의 번호가 매겨진 목록만 가져오고 , cd 1등 의 작업을 수행할 수 있는 방법이 있습니까 ? 현재 디렉터리의 하위 디렉터리 간에 쉽게 이동할 수 있는 다른 방법이 있습니까 ?cd 2cd 3cd

답변1

autocd에서 이 옵션을 설정 하면 ~/.bashrc이름만 입력하여 디렉터리를 변경할 수 있습니다. 탭 완성 기능과 함께 간단히 첫 번째 고유 문자를 입력하고 클릭하면 Tab원하는 디렉터리로 이동할 수 있습니다.

매뉴얼에서:

설정된 경우 디렉터리 이름으로 제공된 명령 이름은 마치 cd 명령에 대한 인수인 것처럼 실행됩니다. 이 옵션은 대화형 쉘에서만 사용됩니다.

다음에 옵션을 추가하세요 ~/.bashrc:

shopt -s autocd 

Zsh를 사용하는 경우 다음을 사용하여 이 옵션을 설정하세요.

setopt autocd 

답변2

~/.bashrc에 기능을 추가하세요.

mycd() { local x; shopt -s {null,dot}glob; select x in ../ */; do cd "$x"; break; done; }

사용법: mycd

답변3

사용완료! 기본적으로 전환하려는 디렉터리의 고유 접두사를 입력한 다음 를 눌러야 합니다 Tab. 보다 정확하게는 를 눌러 Tab첫 번째 고유 접두어를 완성합니다.

몇 가지만 수정하면 가능합니다라인 옵션 읽기. 특히, 설정show-all-if-ambiguous가능한 완료 항목이 여러 개 있는 경우 목록을 즉시 표시하거나show-all-if-unmodified모호함으로 인해 현재 접두어를 더 이상 완성할 수 없는 경우에만 목록을 표시합니다. 이러한 옵션은 파일에 들어갑니다 ~/.inputrc. 예를 들면 다음과 같습니다.

set show-all-if-ambiguous on

Tab가능한 완료 시 회전을 반복적으로 누르도록 bash를 구성할 수 있습니다. 이렇게 하려면 키를 다음에 바인딩하세요.menu-complete기본값 대신complete. 당신의 ~/.inputrc:

"\t": menu-complete

설치에 따라 cd완료 시 디렉터리만 사용하거나 모든 파일을 사용할 수 있습니다. 모든 파일을 제공하는 경우 상황에 맞는 완성을 활성화해야 합니다. 확실하게 하다배쉬 완료패키지가 설치되었으며(대부분의 배포판에서 사용 가능) 다음 줄이 있습니다.

. /etc/bash_completion

귀하의 것 ~/.bashrc(또는 /etc/bash.bashrc귀하의 배포판에 있는 경우).

지쉬메뉴에서 완성을 선택할 수 있는 가능성을 포함하여 bash에는 없는 대화형 사용을 위한 많은 뛰어난 기능을 갖춘 대체 셸입니다. 한번 시도해 볼 수도 있습니다.

답변4

현재 디렉터리 파일 경로를 환경 변수(예:...)에 할당하여 마이그레이션하려는 각 디렉터리에 대해 단일 문자 자리 표시자를 사용할 수도 있습니다.

    a=`pwd`
    b=`pwd`

등. 그런 다음 다음을 사용하여 각 디렉터리로 이동할 수 있습니다.

    cd $a
    cd $b

따옴표 사이에 명령을 실행하는 것을 의미하는 "백틱"과 변수에 출력을 할당하려면 등호를 사용해야 합니다.

단일 문자 변수를 작성하여 경로를 할당할 수도 있습니다. 예를 들면 다음과 같습니다.

    c="/home/user/projects/c++/headers/docs"

그런 다음 다음을 사용하여 해당 디렉토리로 변경할 수 있습니다.

    cd $c

관련 정보