이상한 이유로 내 파일 이름 자동 완성 기능이 평소와 다르게 작동합니다. 다음 파일 구조에서 ./foobar/file.txt
삭제하려면 명령줄에서 파일 이름을 file.txt
입력 하고 자동 완성하도록 합니다 .rm foob<TAB><TAB>
rm foobar/file.txt
그러나 이제 첫 번째 명령을 클릭하면 <TAB>
명령이 자동 완성됩니다 rm foobar
(뒤에 공백 포함 foobar
). 실수로 이 동작으로 변경했을 가능성이 있나요? 어떻게 다시 바꿀 수 있나요?
답변1
/etc/bash_completion.d
내 경험에 따르면 이는 일반적으로 다양한 패키지를 설치할 때 설치 및 업데이트되는 파일 중 하나의 구성이 잘못 작동하여 발생합니다 . 내 제안은 모든 파일을 해당 디렉터리 밖으로 이동하고 새 셸을 시작한 다음 동작이 정상으로 돌아가는지 확인하는 것입니다. 그렇다면 파일을 한 번에 하나씩(또는 그룹) 디렉터리로 다시 이동하여 어떤 파일이 문제를 일으키는지 확인할 수 있습니다. 범위를 좁힌 후에는 파일을 설치하는 패키지의 버그를 보고해 주세요!
답변2
complete -p rm
현재 수행 중인 작업을 확인 rm
하고 bash 기능이 실제로 원하는 방식으로 작동하는지 확인하는 데 사용합니다 .
완료가 필요하지 않은 경우 rm
(예: 이와 같은 매개변수) -i
bash 구성에 다음과 같은 줄을 추가하면 됩니다.
complete -r rm; complete -o default rm
(현재 완성을 제거하고 기본 완성을 설정)