SCP 파일 이름 탭 완성 (있는 경우) 공개하고 싶습니다. 탭 완성은

SCP를 정기적으로 사용하여 서버간에 파일을 이동하고 공개 키를 사용하는 경우 원격 서버에서 탭 완성 기능을 사용할 수 있다는 소문이 있지만 지금까지는 운이 없었습니다.

내가 달성하려고하는 것은 다음과 같습니다.

scp -r remote.ip.address:/remote/dir/folder<TAB> /local/destiation/

ls원격 서버에 /dir/3 개의 폴더가 표시됩니다.

/remote/dir/folder_1
/remote/dir/folder_2
/remote/dir/folder_3

로컬 파일 시스템을 탐색 할 때 정상적인 경로 완성과 마찬가지로 SCP가 어떤 폴더가 일치하는지 (있는 경우) 공개하고 싶습니다. 탭 완성은 scp명령 줄 의 로컬 경로에서 작동 하지만 원격 컴퓨터의 경로가 로컬과 일치 할 때 (예 : “~ /”) 로컬 파일 시스템에서 파일 / 폴더를 완성 / 제안한다는 것을 알았습니다. 리모컨보다.

비밀번호없이 로그인하려면 다음을 실행하십시오.

`ssh remote.ip.address`

… 키가 올바르게 설정되어 있음을 알고 있습니다. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까?



답변

어떤 쉘을 사용하고 있습니까? bash를 사용하는 경우 bash에서 “고급”완료를 활성화해야 할 수도 있습니다.

if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

~ / .bashrc에서

OSX에서는 다음을 수행 할 수 있습니다.

$ sudo port install bash-completion

~ / .profile에 다음을 추가하십시오.

if [ -f /opt/local/etc/bash_completion ]; then
    . /opt/local/etc/bash_completion
fi


답변

누군가 rkthkr의 방법으로 Mac OSX Mountain Lion에서이 작업을 수행하려면 먼저 Mac Ports ( http://www.macports.org/install.php ) 를 설치해야하며 다음 명령을 실행하십시오.

$ sudo port install bash-completion

https://trac.macports.org/wiki/howto/bash-completion 에서 찾은 지침에 따라 터미널 앱을 구성하십시오.


답변

또 다른 간단한 해결책은 sshfs를 사용하는 것 입니다.

SSH 파일 전송 프로토콜을 기반으로하는 파일 시스템 클라이언트입니다. 대부분의 SSH 서버는 이미이 프로토콜을 지원하므로 설정하기가 매우 쉽습니다. 즉, 서버 측에서는 할 일이 없습니다. 클라이언트 측에서 파일 시스템은 ssh를 사용하여 서버에 로그인하는 것만 큼 쉽습니다.

원격 폴더를 로컬 폴더에 연결 하는 퓨즈 기반 파일 시스템입니다. 후드 아래에서 scp가 사용되지만 cp로컬 컴퓨터에서 파일을 복사하는 것처럼 명령을 작동 할 수 있습니다 . 따라서 탭 완성 이 자동으로 작동합니다! SSHFS는 대부분의 배포판 사용할 수 있습니다, 예를 들면 않는다 sudo apt-get install sshfs(이것은 또한로드 fuse커널 모듈)

다음과 같이 시작:

$ sudo mkdir /mnt/server1
$ sudo chown local-username /mnt/server1
$ sshfs remote-username@server1.example.com:/home/remote-username /mnt/server1
$ ls /mnt/server1
 .. <bunch of files> ...
$ cp /mnt/server1/.bash<tab><tab>
.bash_history  .bash_logout   .bashrc
$ cp /mnt/server1/.bashrc .


답변

yafc 사용하는 것이 좋습니다 .

파일 이름 완성을 지원하고 다른 유용한 기능도 있습니다 (예 : 재귀 get / put / fxp / ls / rm)


답변