Bash에서 유니 코드 파일 이름을 선택하십시오.


9

확인; Bash에 있고 폴더에 여러 파일이 있다고 가정합니다. 그중 몇몇은 이름이 지정되지 않은 미친 유니 코드 문자 file☠☡☢☣.txt☠☡☢☣시작합니다. 그중 하나를 어떻게 참조합니까? 탭을 누르면로만 자동 완성되며 file미친 캐릭터를 입력해야합니다. bash에게 "방금 나에게 준 세 번째 목록을 선택하십시오"라고 말할 방법이 있습니까?

답변:


9

이 문제를 해결하고 Shift+ 와 같은 readline으로 다른 유형의 키 바인딩을 사용하는 것이 좋습니다 TAB. 에 다음을 추가하십시오 ~/.inputrc.

"\e[Z": menu-complete

그런 다음을 발행하십시오 exec bash(다음의 설정을 읽어야합니다 ~/.inputrc). bash를 다시 시작하는 대신 일회성으로을 실행하여 동일한 바인딩을 설정할 수 있습니다 bind '"\e[Z": menu-complete'.

이제 반복되는 ShiftTAB시퀀스 를 사용하여 다음 일치하는 문자를 입력 할 필요없이 일치하는 파일 이름을 순환 할 수 있습니다 . 이것은 실행 된 모든 명령에 적용됩니다 ( ShiftTAB시퀀스 에 바인딩되는 표준 읽기 라인 명령이므로 ). OP에서 언급했듯이 이것은 TAB키 의 표준 동작에 영향을 미치지 않으며 ShiftTAB콤보 의 기능을 추가합니다 .


의 사용을 언급하기 위해 편집되었습니다 exec bash.이 작업을 수행하는 데 매우 중요한 단계입니다! ;)
Drav Sloan

감사! 궁금한 사람은 정상적인 기능을 변경하지 않는 것 같습니다. shift-tab 키 콤보 만 추가합니다.
Erhannis

맞아, 내 탭 키를 내버려 두십시오 !! D : 그 변경 한 경우 : 나는 화가 될 것
Drav 슬로안

3

때때로 작동하는 또 다른 방법은 와일드 카드 를 사용 ?하거나 *붙인 다음 탭 완성과 고유하게 일치 할 때까지 나머지 "항목"을 입력하는 것입니다.


2

포함 된 디렉토리로 이동하여를 file☠☡☢☣.txt입력하십시오 ls -i. 당신은 라인을 볼 수 있습니다 :

xxxxx file☠☡☢☣.txt

xxxxx의 색인 번호는 어디 입니까 file☠☡☢☣.txt? 시작하다:

find . -maxdepth 1 -inum xxxxx -exec /bin/mv -i {} bettername.txt \;

여기서 xxxxx선행 라인에 의한 상기 인덱스 번호이다 ls -i. 이 이름을 변경 file☠☡☢☣.txt으로 bettername.txt.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.