Kopiowanie pliku zdalnego do określonej ścieżki na pulpicie lokalnym za pomocą scp

10

Próbowałem skopiować plik ze zdalnego serwera za pomocą SCP, ale pojawia się następujący błąd.

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

ssh: Nie można rozpoznać nazwy hosta C: podana nazwa hosta lub nazwa serwera jest nieznana

Przyjmuje C: jako nazwę hosta, ale jest to tylko nazwa napędu. Pozwól mi, jak wyraźnie określić, jak niektórzy uciekają, aby pozbyć się tego problemu.

Jeśli nie podam ścieżki do zapisania na lokalnym pulpicie, działa dobrze.

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

Doceń wszelką pomoc. Z góry dzięki,

PS: Korzystanie z systemu Windows XP SP2

Naga Kiran
źródło

Odpowiedzi:

14

Jeśli korzystasz z Cygwin scp, możesz spróbować użyć ścieżek Cygwin:

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

Możesz także użyć poleceń pscpi psftpzawartych w pakiecie PuTTY - są to rodzime programy Win32 i nie będą narzekać na ścieżki Windows.

Alternatywnie, WinSCP jest dobrym klientem SCP / SFTP (przede wszystkim GUI, choć jest również wyposażony w narzędzie wiersza poleceń).

użytkownik1686
źródło
To właściwie / cygdrive / c.
Adam Rosenfield
Dzięki za zalecany GUI. Należy pamiętać, że WinSCP umożliwia zmianę używanego z nim edytora i będzie działał w połączeniu z emacsclientw.
Giles Roberts,
1
@grawity Właściwie wcześniej miałeś rację. Jest to /cygdrive/cdomyślnie, ale wielu użytkowników cygwin działa, mount --change-cygdrive-prefix /więc /czamiast tego ( /ditd.), Ponieważ o wiele łatwiej jest pisać;)
DavidPostill
2

Użyj PSCP.exe

Problemem jest to, że odwołujesz się do napędu Windows XP z powłoki, której nie możesz zrobić. Jesteś zalogowany zdalnie na maszynie, więc jeśli twój Windows XP nie ma uruchomionego serwera ssh, w którym to przypadku użyjesz danych logowania i pw dla lokalizacji docelowej, nie możesz tego zrobić.

Za pomocą pscp.exe (za darmo) możesz robić, co chcesz.


źródło
0

@grawity ma rację. W przyszłości możesz także biegać

pwd

aby dowiedzieć się, w którym katalogu się znajdujesz, abyś mógł znaleźć właściwą ścieżkę do katalogu, który chcesz, zgodnie z cygwin.

Markiz Wang
źródło
0

Miałem podobny problem i odniosłem sukces używając:

nazwa użytkownika scp @ server: main.php /c/main.php

o czym wspominają tylko inni.

Urthona
źródło
3
Czy to nie jest dokładnie to, co omawia superuser.com/a/291841/53590 ? Plus po edycji z / c / do / cygdrive / c / po tym, jak wskazano, że ta ostatnia jest poprawna.
CVn
0

powiązane: Musiałem użyć zmiennych lokalnych na ścieżce i stwierdziłem, że użycie cygpathbyło bardzo pomocne.

na przykład

scp $MY_FILE [email protected]

zostać:

scp `cygpath $MY_FILE ` [email protected] 

jak na ironię, po prostu: echo $MY_FILEsam podał ścieżkę cygwina, ale użyty w komendzie scp, jakoś tak nie było i wypluł ten sam błąd, ssh: nie można rozwiązać nazwy hosta C: nazwa hosta ani nazwa serwera, lub nieznana

Matt S.
źródło