J'utilise SCP régulièrement pour déplacer des fichiers entre les serveurs et j'ai entendu dire que vous pouvez utiliser la tabulation sur le serveur distant si vous utilisez des clés publiques, mais jusqu'à présent, je n'ai pas eu de chance.
Ce que j'essaie d'accomplir est le suivant:
scp -r remote.ip.address:/remote/dir/folder<TAB> /local/destiation/
Un ls
sur le serveur distant /dir/
révélerait 3 dossiers:
/remote/dir/folder_1
/remote/dir/folder_2
/remote/dir/folder_3
J'aimerais que SCP révèle quels dossiers correspondent (le cas échéant), tout comme l'achèvement normal du chemin lors de la navigation dans le système de fichiers local. L'achèvement de tabulation fonctionne sur les chemins locaux dans la scp
ligne de commande, mais j'ai remarqué que lorsque le chemin de la machine distante correspond au local (c'est-à-dire: "~ /"), il complète / suggère des fichiers / dossiers à partir du système de fichiers local plutôt que la télécommande.
L'exécution des travaux suivants pour une connexion sans mot de passe:
`ssh remote.ip.address`
... donc je sais que les touches sont correctement configurées. Des idées sur la façon de faire fonctionner cela?
Réponses:
Quel shell utilisez-vous? Si vous utilisez bash, vous devrez peut-être activer les complétions "avancées" dans bash ...
Dans votre ~ / .bashrc
Sur OSX, vous pouvez faire:
À votre ~ / .profile, ajoutez:
la source
Si quelqu'un souhaite le faire pour Mac OSX Mountain Lion avec la méthode de rkthkr, il doit d'abord installer les ports Mac ( http://www.macports.org/install.php ), exécutez la commande qu'il a mentionnée:
puis configurez leur application de terminal selon ces instructions trouvées ici: https://trac.macports.org/wiki/howto/bash-completion
la source
Une autre solution, peut-être plus simple, utilise sshfs .
Il s'agit d'un système de fichiers basé sur des fusibles qui relie votre dossier distant à un dossier local. Sous le capot, scp est utilisé, mais vous pouvez utiliser la
cp
commande comme pour copier des fichiers sur votre machine locale. Ainsi, la complétion des onglets fonctionne automatiquement! sshfs est disponible pour la plupart des distributions, par exemple dosudo apt-get install sshfs
(cela charge également lefuse
module du noyau)Commencer comme ça:
la source
Je recommande fortement d'utiliser yafc .
Il prend en charge l'achèvement du nom de fichier et possède également d'autres fonctionnalités utiles (par exemple, récursif get / put / fxp / ls / rm)
la source