การคัดลอกไฟล์ระยะไกลไปยังเส้นทางที่ระบุบนเครื่องเดสก์ทอปโดยใช้ scp


10

ฉันพยายามที่จะคัดลอกไฟล์จากเซิร์ฟเวอร์ระยะไกลโดยใช้ SCP แต่มันให้ข้อผิดพลาดดังต่อไปนี้

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

ssh: ไม่สามารถแก้ไขชื่อโฮสต์ C: ชื่อโฮสต์หรือชื่อผู้ใช้ที่ระบุหรือไม่รู้จัก

มันสมมติว่า C: เป็นชื่อโฮสต์ แต่เป็นชื่อไดรฟ์ .. โปรดแจ้งให้ฉันทราบวิธีการระบุอย่างชัดเจนเช่นการหลบหนีเพื่อกำจัดปัญหานี้

หากฉันไม่ระบุพา ธ ที่จะบันทึกบนเดสก์ท็อปในท้องถิ่นแสดงว่าใช้ได้ดี

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

ขอบคุณสำหรับความช่วยเหลือใด ๆ .. ขอบคุณล่วงหน้า

PS: การใช้ Windows XP SP2

คำตอบ:


14

หากคุณใช้ Cygwin scpคุณอาจลองใช้เส้นทาง Cygwin:

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

คุณสามารถใช้pscpและpsftpคำสั่งที่รวมอยู่ในแพคเกจPuTTY - เป็นโปรแกรม Win32 ดั้งเดิมและจะไม่บ่นเกี่ยวกับเส้นทางของ Windows

อีกวิธีหนึ่งWinSCPเป็นไคลเอนต์ SCP / SFTP ที่ดี (ส่วนใหญ่เป็น GUI แม้ว่าจะมาพร้อมกับเครื่องมือบรรทัดคำสั่ง)


เป็นจริง / cygdrive / c
Adam Rosenfield

ขอบคุณสำหรับ GUI ที่แนะนำ โปรดทราบว่า WinSCP ช่วยให้คุณสามารถแก้ไขโปรแกรมแก้ไขที่คุณใช้ด้วยและจะทำงานร่วมกับ emacsclientw
Giles Roberts

1
@grawity ที่จริงแล้วคุณเคยถูกต้องมาก่อน มันเป็น/cygdrive/cค่าเริ่มต้น แต่ผู้ใช้ cygwin จำนวนมากทำงานmount --change-cygdrive-prefix /เพื่อให้มัน/cแทน ( /dฯลฯ ) เพราะมันง่ายต่อการพิมพ์;)
DavidPostill

2

ใช้ PSCP.exe

ปัญหาที่คุณมีอยู่คือคุณอ้างอิงไดรฟ์ windows xp จากเชลล์ที่คุณไม่สามารถทำได้ คุณเข้าสู่ระบบจากระยะไกลไปยังเครื่องดังนั้นหากกล่อง windows xp ของคุณมีเซิร์ฟเวอร์ ssh ที่ทำงานอยู่ในกรณีนี้คุณจะใช้ข้อมูลเข้าสู่ระบบและข้อมูล pw สำหรับตำแหน่งปลายทางคุณจะไม่สามารถทำเช่นนั้นได้

ใช้ pscp.exe (ฟรี) คุณสามารถทำสิ่งที่คุณต้องการ


0

@grawity ถูกต้อง ในอนาคตคุณสามารถเรียกใช้ยัง

pwd

เพื่อค้นหาว่าคุณอยู่ในไดเรกทอรีใดเพื่อให้คุณสามารถหาเส้นทางที่ถูกต้องไปยังไดเรกทอรีที่คุณต้องการได้ตาม cygwin


0

ฉันมีปัญหาที่คล้ายกันและประสบความสำเร็จในการใช้:

ชื่อผู้ใช้ scp @ server: main.php /c/main.php

ซึ่งเป็นประเภทที่คนอื่นพูดถึงเท่านั้น


3
จริงๆแล้วนี่ไม่ใช่superuser.com/a/291841/53590 ที่พูดถึงใช่มั้ย บวกได้รับการแก้ไขจาก / c / ถึง / cygdrive / c / หลังจากที่มันถูกชี้ให้เห็นว่าหลังเป็นรูปแบบที่ถูกต้อง
CVn

0

เกี่ยวข้อง: ฉันจำเป็นต้องใช้ตัวแปรท้องถิ่นในเส้นทางและพบว่าการใช้cygpathมีประโยชน์มาก

เช่น

scp $MY_FILE ubuntu@192.128.23.23

เป็น:

scp `cygpath $MY_FILE ` ubuntu@192.128.23.23 

แดกดันเพียง: echo $MY_FILEเพียงอย่างเดียวก็ให้เส้นทาง cygwin แต่ใช้ในคำสั่ง scp อย่างใดมันก็ไม่ได้และคายข้อผิดพลาดเดียวกันนั้นssh: ไม่สามารถแก้ไขชื่อโฮสต์ C: ชื่อโฮสต์หรือ servname ให้หรือไม่เป็นที่รู้จัก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.