scp가 대상 시스템 경로를 알고 있습니까?

scp가 대상 시스템 경로를 알고 있습니까?

최근에 개인적인 용도로 OSX에서 Linux로 전환했습니다. 헤드리스 Ubuntu를 실행하는 홈 미디어 서버가 있고 이제는 Mint를 실행하는 노트북이 있습니다. 내 습관은 scp. 과거에는 OSX에서 복사 대상을 입력할 때 경로의 각 문자를 힘들게 입력했습니다. 습관적으로 탭 완성을 시도하면 컴퓨터가 불안정해지고 처음부터 다시 시작해야 했기 때문입니다. 그러나 방금 새 컴퓨터의 SSH 키를 설정하고 노트북에서 서버로 파일을 전송하는 중에 scp실수로 탭을 눌렀는데 놀랍게도 경로가 올바르게 완료되었습니다! 이것이 정상적인 행동입니까? OSX의 term2에서는 왜 작동하지 않습니까? 참고로 다른 터미널 창에서 서버에 대한 연결이 열려 있었습니다.

답변1

이것은 실행 중인 쉘의 명령 완성입니다. 쉘은 현재 명령줄이 로 시작될 때 scp특정 컨텍스트에서 경로를 완료하기 위해 대상 시스템에 연결해야 한다는 것을 "알고 있습니다"(가능한 경우). 키를 로드했기 때문에 이 작업은 투명하게 수행될 수 있습니다.

/usr/share/bash-completion/completions/scp이는 일반적으로 (Bash를 사용하는 경우) 또는 /usr/share/zsh/functions/Completion/Unix/_ssh(Zsh의 경우) 에서 구현되는 것을 볼 수 있습니다 .

관련 정보