너무 늦었습니다. 문제의 머신, 운영 체제 및 구성이 더 이상 사용되지 않으므로 추가 제안을 확인할 수 없습니다. Fedora나 Arch Linux에서는 이 문제가 발생하지 않았습니다. 만약에너이 문제가 발생하면 다른 질문을 게시하고 구성 세부정보를 제공해 주세요.
홈 디렉터리에서 파일을 복사하려고 할 때마다 다음 문제에 직면하게 됩니다. (물결표)로 시작하는 경로는 scp
자동 완성되지 않습니다 . 두 번 ~
입력 하고 누르면 scp ~/
이를 확인하는 것이 매우 간단합니다 Tab. 파일 완성이 표시되지 않습니다. 예를 들어 고유한 경로 접두사를 지정하더라도 scp ~/.bash_hist
완료되지 않습니다. 이는 의도적으로 설계된 것입니까, 구성 가능한 것입니까, 아니면 버그입니까?
명확히 하기 위해 작업을 완료하는 다른 모든 부분(원격 호스트의 호스트 이름과 경로)은 모두 잘 수행되었습니다. 물결표를 사용하여 경로를 완성하는 것은 와 같은 다른 명령에서도 작동합니다 ls
.
비표준 과제를 완료하는 데 제한이 있나요 ~
? 내 것은 /home/users/username
다른 호스트에 대한 NFS 3 마운트를 가리키고 있습니다( /home/username
브라우저 프로필과 같이 속도가 중요한 항목을 위해). 나는 $HOME
( /home/users/username
)이나 다른 이상한 것을 바꾸지 않았습니다 .
Fedora 19에서는 작동합니다. Tab결과는 다음에서 완료됩니다 .scp ~/foo
바꾸다그런 ~
다음 /home/username
정상적으로 완료됩니다.
참고하세요: 질문은 ~이야어느 것도 아니다루트로 자동 완성 정보...도 아니다원격으로 자동으로 수행됩니다. Bash는 설치가 완료된 후 제대로 작동합니다.
openssh-client 1:5.9p1-5ubuntu1 및 GNU bash 버전 4.2.24(1)-release(x86_64-pc-linux-gnu) 실행
답변1
Debian Lenny에서 작업할 때 다음을 수행하십시오:
apt-get install bash-completion
그런 다음 ~/.bash_profile을 사용하여 로컬로 활성화하거나 /etc/profile을 사용하여 시스템 전체에 추가합니다. 다음을 붙여넣습니다.
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
답변2
bash가 auto-completion
갈 길인 것 같습니다. bash-completion
패키지를 설치합니다 .
그런 다음 명령에 대한 참조 /etc/bash_completion.d/ssh
가 나옵니다 .scp
답변3
동일한 문제가 발생했습니다 (가치가 있는 OS X 10.11, 스톡 bash 3.2.57, Brew를 통한 bash-completion 1.3). 다음과 같은이 팁SSH 완료 파일에서 물결표( /usr/local/etc/bash_completion.d/ssh
내 경우 또는 /etc/bash_completion.d/ssh
다른 경우) 를 다음과 같이 확장했습니다.
_scp_local_files()
{
local IFS=$'\n'
local dirsonly=false
if [ "$1" = -d ]; then
dirsonly=true
shift
fi
cur="${cur/#\~/$HOME}" # <<< Expand tilde
if $dirsonly ; then
COMPREPLY=( "${COMPREPLY[@]}" $( command ls -aF1d $cur* 2>/dev/null | \
sed -e "s/$_scp_path_esc/\\\\&/g" -e '/[^\/]$/d' -e "s/^/$1/") )
else
COMPREPLY=( "${COMPREPLY[@]}" $( command ls -aF1d $cur* 2>/dev/null | \
sed -e "s/$_scp_path_esc/\\\\&/g" -e 's/[*@|=]$//g' \
-e 's/[^\/]$/& /g' -e "s/^/$1/") )
fi
COMPREPLY="${COMPREPLY/#$HOME/~}" # <<< Contract tilde
또한 경로를 멋지고 짧게 유지하면서(어쨌든 원래 입력한 대로) 마지막에 물결표를 줄이는 것이 좋다고 생각합니다.