bash의 GUI 파일 관리자를 포기하지 못하게 하는 한 가지 이유는 Bash가 빈 디렉토리 내의 고유한 하위 디렉토리에 대해 탭 완성 기능을 수행하지 않는다는 것입니다.
$ ls
.. // is not displayed, when cmd is simply ls
. // but they still exist
subdir/
cd <tab>
현재 디렉토리에 다른 것이 없기 때문에 확장 할 수 있기를 원 cd subdir/
하지만 bash는 이 명령을 완료하려면 입력의 첫 글자가 필요합니다.
사용 사례
중첩된 디렉터리(특히 알 수 없는 디렉터리)가 있는 프로젝트를 탐색하는 것은 고통스럽습니다. /src/main/com/application/module/package는 다음과 같이 번역됩니다.
s<tab><tab><tab>m<tab><tab><tab>c<tab><tab><tab>a<tab>...
예를 들어 thunar의 경우 첫 번째 디렉터리가 미리 선택되어 있으므로 Enter를 여러 번 누를 수 있습니다.
나는 이것이 현재 디렉토리와 상위 디렉토리의 식별자 때문이라고 생각합니다. Bash에서 이 동작을 구축하는 올바른 방법은 무엇입니까?
//편집_2:
데비안 10에서 xfce4-terminal을 사용하고 있습니다
답변1
내 질문에 대한 빠른 의견을 보내주신 모든 분들께 감사드립니다. 프로그래밍 가능한 쉘 스크립트의 쉘 스크립팅을 비활성화하면 문제가 해결되었습니다.
이는 Debian이 사전 설치된 패키지로 인해 발생합니다. 이 문제를 해결하는 단계는 다음과 같습니다.
- 내 파일에 나타나는 다음 코드 목록
.bashrc
($HOME/.bashrc, $HOME/.profile, /etc/bash.bashrc 및 /etc/profile)을 제거합니다. apt remove bash-completion
다음 파일을 삭제할 패키지를 제거하십시오.데비안 패키지 - 파일 목록- 편집된 .bashrc/restart bash를 가져옵니다.
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
매우 감사합니다!