현재 디렉터리가 비어 있으면 하위 디렉터리를 입력하세요.

현재 디렉터리가 비어 있으면 하위 디렉터리를 입력하세요.

Bash에 대한 GUI 파일 관리자를 버리는 것을 방지하는 한 가지가 있습니다. Bash는 빈 디렉토리의 유일한 하위 디렉토리에 대해 탭 완성을 수행하지 않습니다.

$ ls
..       // is not displayed, when cmd is simply ls
.        // but they still exist
subdir/

현재 디렉토리에 다른 것이 없기 때문에 확장할 수 있기를 원하지만 bash는 이 명령을 완료하려면 첫 번째 문자를 입력해야 cd <tab> 합니다 .cd subdir/

사용 사례 중첩된 디렉터리(특히 알 수 없는 디렉터리)가 있는 프로젝트를 탐색하는 것은 고통스럽습니다. /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의 사전 설치된 패키지로 인해 발생했습니다. 이 문제를 해결하는 단계는 다음과 같습니다.

  1. .bashrc내 -files, 즉 $HOME/.bashrc, $HOME/.profile, /etc/bash.bashrc 및 /etc/profile 내에서 다음 코드 목록을 제거하십시오 .
  2. apt remove bash-completion다음 파일을 제거하는 패키지를 제거하십시오.데비안 패키지 - 파일 목록
  3. 편집된 .bashrc를 소싱하고 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  

정말 감사합니다!

관련 정보