SCP의 파일 이름 보기

SCP의 파일 이름 보기

scp원격 서버에서 로컬 서버로 파일을 복사하는 데 사용합니다 . 정말 불편한 점은 파일 경로를 정확하게 입력해야 한다는 점입니다. 파일 이름과 폴더 구조가 상당히 길 수 있기 때문에 저는 자동 완성에 의존하는 데 익숙합니다. 로컬에서 파일을 검색할 때처럼 각 디렉터리의 파일 이름을 보고 자동 완성되도록 하고 싶습니다.

이제 SSH만으로 파일 이름을 찾아 SCP 명령에 사용할 수 있습니다. 그러나 물론 이것은 엄청난 에너지 낭비가 될 것입니다. 또는 GUI를 사용할 수도 있지만 명령줄이 더 가벼우므로 GUI를 사용하지 않는 것이 좋습니다.

정확한 파일명을 기억하지 않고도 SCP를 사용할 수 있는 방법이 있나요?

답변1

bash-completion(Cygwin, Debian, Ubuntu 및 기타 많은 배포판에서 사용 가능) scp프롬프트 없이 쉘이 필요한 서버에 액세스할 수 있는 한 자동 완성을 지원합니다( ssh일괄 모드에서 사용됩니다. 참조).ssh_config(5)매뉴얼 페이지더 알아보기).

이 기능을 활성화하는 가장 쉬운 방법은 을 사용하는 것입니다 ssh-agent. 데스크탑 환경에서는 이 기능이 기본적으로 활성화되어 있을 수 있습니다.

ssh-add

현재 실행 중인 에이전트(있는 경우)에 기본 키를 추가합니다. 실행 중인 에이전트가 없으면 다음을 실행하여 에이전트를 시작할 수 있습니다.

eval $(ssh-agent)

scp에이전트가 키를 알고 나면 해당 키를 사용하여 액세스할 수 있는 서버와 관련된 명령을 자동 완성할 수 있습니다 .

자동 완성 기능 zsh도 지원된다고 확신합니다 . 하지만 동일한 주의 사항이 있지만 데비안 패키지에는 필요한 지원이 포함되어 있습니다 . 다음과 같은 아이디어 에서 활성화해야 합니다 .scpzsh-common.zshrc

autoload -U compinit && compinit

(지원되는 모든 완성 항목을 로드합니다.)

답변2

Zsh에는 원격 scp완료 기능이 있지만 비공식과 같은 특정 래퍼 기능에 별칭을 사용하지 않도록 해야 합니다.glob_scp, 또는 다음과 같은 동일한 완료 메커니즘이 있는 경우 이를 추가할 수 있습니다.

compdef glob_scp=scp

zsh필요할 때 특수 문자를 올바르게 인용한다는 것을 알 수 있습니다 *(이상하게 보일 수도 있음). 지금bash-completion 이러지 마세요, 실패는 흔하지 않지만.

또는 특히 원격 완료가 없는 쉘의 경우 다음을 scp사용할 수 있습니다 .sftpsshfs

  • sftp자체 완성 시스템이 있습니다.
  • sshfscp일반적인 완성 시스템과 함께 사용하기 에 충분한 SSH를 통해 원격 디렉터리를 마운트할 수 있습니다 .

관련 정보