Eu uso o SCP regularmente para mover arquivos entre servidores e ouvi rumores de que você pode usar o preenchimento de guias no servidor remoto se estiver usando chaves públicas, mas até agora não tive sorte.
O que estou tentando realizar é o seguinte:
scp -r remote.ip.address:/remote/dir/folder<TAB> /local/destiation/
Um ls
no servidor remoto de /dir/
revelaria 3 pastas:
/remote/dir/folder_1
/remote/dir/folder_2
/remote/dir/folder_3
Eu gostaria que o SCP revelasse quais pastas correspondem (se houver), assim como a conclusão do caminho normal ao navegar no sistema de arquivos local. O preenchimento de tabulação funciona nos caminhos locais na scp
linha de comando, mas notei que quando o caminho da máquina remota corresponde ao local (ou seja: "~ /"), ele conclui / sugere arquivos / pastas do sistema de arquivos local. que o controle remoto.
A execução do seguinte funciona para logon sem senha:
`ssh remote.ip.address`
... então eu sei que as chaves estão configuradas corretamente. Alguma idéia de como fazer isso funcionar?
Respostas:
Qual shell você está usando? Se você estiver usando o bash, talvez seja necessário ativar conclusões "avançadas" no bash ...
No seu ~ / .bashrc
No OSX, você pode fazer:
Ao seu ~ / .profile, adicione:
fonte
Se alguém quiser fazer isso no Mac OSX Mountain Lion com o método rkthkr, precisará instalar primeiro as portas do Mac ( http://www.macports.org/install.php ), execute o comando que ele mencionou:
em seguida, configure seu aplicativo de terminal de acordo com estas instruções encontradas aqui: https://trac.macports.org/wiki/howto/bash-completion
fonte
Outra solução, talvez mais simples, é usar sshfs .
É um sistema de arquivos baseado em fusíveis que vincula sua pasta remota a uma local. Sob o capô, scp é usado, mas você pode operar o
cp
comando da mesma forma que copia arquivos na sua máquina local. Assim, o preenchimento de guias funciona automaticamente! O sshfs está disponível para a maioria das distribuições, por exemplo, façasudo apt-get install sshfs
(isso também carrega ofuse
módulo do kernel)Comece assim:
fonte
Eu recomendo fortemente o uso do yafc .
Ele suporta a conclusão de nomes de arquivos e também possui outros recursos úteis (por exemplo, get / put / fxp / ls / rm recursivos)
fonte