Utilizo SCP regularmente para mover archivos entre servidores y he escuchado rumores de que puedes usar la finalización de pestañas en el servidor remoto si estás usando claves públicas, pero hasta ahora no he tenido suerte.
Lo que intento lograr es lo siguiente:
scp -r remote.ip.address:/remote/dir/folder<TAB> /local/destiation/
Un ls
en el servidor remoto de /dir/
revelaría 3 carpetas:
/remote/dir/folder_1
/remote/dir/folder_2
/remote/dir/folder_3
Me gustaría que SCP revele qué carpetas coinciden (si corresponde), al igual que la finalización normal de la ruta al navegar por el sistema de archivos local. La finalización de tabulación funciona en las rutas locales en la scp
línea de comando, pero he notado que cuando la ruta de la máquina remota coincide con la local (es decir: "~ /"), completa / sugiere archivos / carpetas del sistema de archivos local. que el control remoto
Ejecutar los siguientes trabajos para el inicio de sesión sin contraseña:
`ssh remote.ip.address`
... así que sé que las teclas están configuradas correctamente. ¿Alguna idea sobre cómo hacer que esto funcione?
Respuestas:
¿Qué caparazón estás usando? Si está utilizando bash, es posible que deba habilitar las finalizaciones "avanzadas" en bash ...
En tu ~ / .bashrc
En OSX puedes hacer:
A su ~ / .profile agregue:
fuente
Si alguien quiere hacer esto para Mac OSX Mountain Lion con el método de rkthkr, primero deben instalar los puertos de Mac ( http://www.macports.org/install.php ), ejecute el comando que mencionó:
luego configure su aplicación de terminal según estas instrucciones que se encuentran aquí: https://trac.macports.org/wiki/howto/bash-completion
fuente
Otra solución, quizás más simple, es usar sshfs .
Es un sistema de archivos basado en fusibles que vincula su carpeta remota a una local. Debajo del capó, se usa scp, pero puede operar el
cp
comando al igual que copiar archivos en su máquina local. Por lo tanto, la finalización de pestañas funciona automáticamente. sshfs está disponible para la mayoría de las distribuciones, por ejemplo dosudo apt-get install sshfs
(esto también carga elfuse
módulo del kernel)Inicia así:
fuente
Recomiendo usar yafc .
Admite la finalización de nombre de archivo y también tiene algunas otras características útiles (por ejemplo, get / put / fxp / ls / rm recursivo)
fuente