~ username / / home / username으로 변경하면 탭에 공백이있는 경로가 완성되는 이유는 무엇입니까?


3

에서 ~jacksonc/temp/ 두 개의 파일이 있습니다. test.txtspace test.txt둘 다 Windows를 통해 (Samba 사용) 배치되었습니다.

내가 입력하면 bash를 사용합니다.

cat ~jacksonc/temp/t[tab]

, 자동 완성 기능

cat ~jacksonc/temp/test.txt

그러나, 내가 입력하면

cat ~jacksonc/temp/s[tab]

자동 완성 기능

cat /home/jacksonc/temp/space\ test.txt

내 질문은 백 슬래시에 관한 것이 아니라 왜 그런지 알고 있습니다. 왜 공간이 ~을 확장시키는 원인인지에 대해 궁금합니다.


어깨를 으하다 그것은 나를 위해 똑같은 일을하지 않는다 (리눅스에서 bash 4.1.5를 사용). 그것은 단지 버그 일 수 있습니다.
Flimzy

나는 그것을 의심한다. Drav Sloan이 제안한 것처럼 사용자 설정 일 가능성이 큽니다.
Cam Jackson

현재 우분투의 기본 설정을 사용하여 다른 데이터 포인트를 제공하기 만하면, bash 확장하다 ~ 경로에 공백이 있는지 여부에 관계없이 탭 완료를 사용할 때 실제 경로로 이동합니다. 나는 공간이 왜 달라 지는지 전혀 모른다. 나는 전에 그런 말을 들어 본 적이 없다.
Dave Sherohman

음. 안타깝게도, 필자는 6 년 전 Red Hat으로 본질적으로 다시 배지를 받았다고 생각하지만 필자는 자신의 내부 Linux 배포판을 사용하기 때문에 필자가 사용하고있는 시스템에 대해 너무 많은 세부 정보를 제공 할 수는 없습니다.
Cam Jackson

그래도 하나의 추가 사항은 ksh (기본 쉘)에서 탭 완성시 항상 ~을 확장한다는 것입니다. 하지만 배쉬를 터뜨리면 경로의 공간에서만 발생합니다. 기묘한.
Cam Jackson

답변:


4

당신의 시스템이 bash_completion 스크립트를 가지고 있기 때문에 나는 상상할 것이다. http://bash-completion.alioth.debian.org/ 설치되어이 같은 동작을 변경할 수 있습니다.

일반적으로이 확장은 readline 옵션을 통해 끌 수 있습니다. 당신의 ~/.inputrc 파일에 다음을 입력하십시오.

expand-tilde off

음, 아마도. 나 몰라, 나는이 건물 어딘가에있는 서버에 SSH 할거야. 어떤 생각이긴하지만, 왜 이것은 공간이 경로에있을 때만 발생합니까? 나에게 많은 의미가 없다.
Cam Jackson

방금 확인한 결과 아무 것도 없습니다. ~/.inputrc 내 홈 디렉토리에있는 파일, 그래서이 아니에요. 그래도 다른 사람들이 ~로 확장되면서 다른 결과를 얻고 있기 때문에 비슷하게 보일 것입니다.
Cam Jackson

글쎄요. ~/inputrc 이 확장의 동작에 영향을 줄 수 있습니다. 필자는 개인적으로 bash_completion (bash의 기본 자동 완성을 확장하기 위해 컴파일 된 일련의 자동 완료 루틴을 의심해 봅니다. 부가 스탠드 bash 설치. 그 징후는 디렉토리입니다 /etc/bash_completion.d/ 또는 파일 /etc/bash_completion.
Drav Sloan

이 대답을 수락하십시오. 나는 그것이 효과 (즉, bash_completion)를 일으키는 정확한 것이 아니라고 생각하지만, 대부분 똑같은 일을하는 다른 스크립트 일 가능성이 큽니다. 이것은 원칙적으로 정확합니다 :)
Cam Jackson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.