폴더의 자동 완성 명령

폴더의 자동 완성 명령

특정 폴더 내의 폴더 이름을 자동 완성하는 bash 스크립트를 작성하려고 합니다. 이것이 내가 지금까지 가지고 있는 것입니다:

function go {
  cd "/path/to/folder/$@"
}

목표는 자동 완성을 갖는 것이므로 go pro탭을 입력하고 누르면 파일이나 폴더가 자동 완성됩니다./path/to/folder/project/

답변1

다음을 사용하여 complete원하는 것을 얻을 수 있습니다 .


다음에 추가하세요 .bashrc:

if [[ -f /path/to/your/script ]]; then
  . /path/to/your/script
fi

그런 다음 홈 디렉터리에서 실행합니다.

. .bashrc

스크립트를 작성 /path/to/your/script하고 실행 가능하게 만드십시오 chmod +x /path/to/your/script. 다음 내용을 넣으세요.

#!/bin/bash

# check that the function doesn't already exist
[[ ! -z "$(compgen -c | grep "^go$")" ]] \
  && echo "The command 'go' already exists." \
  && exit

go() {
 cd /your/dir/"$1"
}

cd_my_dir() {
 cd /your/dir
}

complete -d -F cd_my_dir go

유형 go그리고Tab두 번 누르기

go <Tab> <Tab>

가능한 디렉터리 목록이 나타납니다:

foo/
bar/

이름의 시작 부분을 입력하기 시작하면 자동으로 완성됩니다.

go f <Tab> → go foo/

관련 정보