Copie d'un fichier distant vers un chemin spécifié sur le bureau local à l'aide de scp

10

J'essayais de copier un fichier à partir d'un serveur distant en utilisant SCP mais cela donne l'erreur suivante.

bash-3.2$ scp username@server:main.php C:\main.php

ssh: impossible de résoudre le nom d'hôte C: nom d'hôte ni nom de serveur fourni, ou inconnu

Son en supposant C: comme nom d'hôte, mais c'est juste le nom du lecteur ... S'il vous plaît laissez-moi comment spécifier explicitement comme certains s'échappant pour se débarrasser de ce problème.

Si je ne spécifie pas le chemin où enregistrer sur le bureau local, cela fonctionne bien.

bash-3.2$ scp username@server:main.php main.php
main.php                                                                   100%   29KB  28.9KB/s   00:01

Appréciez toute aide .. Merci d'avance,

PS: utilisation de Windows XP SP2

Naga Kiran
la source

Réponses:

14

Si vous utilisez Cygwin scp, vous pouvez essayer d'utiliser les chemins Cygwin:

scp user@host:main.php /cygdrive/c/main.php

Vous pouvez également utiliser les commandes pscpet psftpincluses dans le package PuTTY - ce sont des programmes Win32 natifs et ne vous plaindrez pas des chemins Windows.

Alternativement, WinSCP est un bon client SCP / SFTP (principalement une interface graphique, mais est également livré avec un outil en ligne de commande).

user1686
la source
C'est en fait / cygdrive / c.
Adam Rosenfield
Merci pour l'interface graphique recommandée. Veuillez noter que WinSCP vous permet de modifier l'éditeur que vous utilisez avec et fonctionnera en conjonction avec emacsclientw.
Giles Roberts
1
@grawity En fait, vous aviez raison auparavant. C'est /cygdrive/cpar défaut, mais de nombreux utilisateurs de cygwin s'exécutent mount --change-cygdrive-prefix /pour que ce soit à la /cplace ( /detc) car c'est beaucoup plus facile à taper;)
DavidPostill
2

Utilisez PSCP.exe

Le problème que vous rencontrez est que vous faites référence à votre lecteur Windows XP à partir du shell, ce que vous ne pouvez pas faire. Vous êtes connecté à distance à une machine, donc à moins que votre boîte Windows XP ne dispose d'un serveur ssh en cours d'exécution, auquel cas vous utiliserez les informations de connexion et pw pour l'emplacement de destination, vous ne pourrez pas le faire.

En utilisant pscp.exe (gratuit), vous pouvez faire ce que vous voulez.


la source
0

@grawity a raison. À l'avenir, vous pouvez également exécuter

pwd

pour savoir dans quel répertoire vous vous trouvez, afin que vous puissiez trouver le chemin correct vers le répertoire que vous souhaitez selon cygwin.

Marquis Wang
la source
0

J'ai eu le même problème et j'ai réussi à utiliser:

scp username @ server: main.php /c/main.php

ce qui est en quelque sorte mentionné par les autres.

Urthona
la source
3
En fait, n'est-ce pas exactement ce que superuser.com/a/291841/53590 discute? De plus, ayant été édité de / c / vers / cygdrive / c / après avoir souligné que ce dernier est la forme correcte.
un CVn du
0

en relation: j'avais besoin d'utiliser des variables locales dans le chemin, et j'ai trouvé que l'utilisation cygpathétait très utile.

par exemple

scp $MY_FILE [email protected]

devenir:

scp `cygpath $MY_FILE ` [email protected] 

ironiquement, juste: echo $MY_FILEseul donnait un chemin cygwin, mais utilisé dans la commande scp, ce n'était pas le cas et crachait la même erreur, ssh: Impossible de résoudre le nom d'hôte C: nom d'hôte ni nom de serveur fourni, ou inconnu

Matt S.
la source