ฉันอยู่บนเครื่อง A และต้องการดึงไฟล์จากเครื่อง B
A$ scp <myuserid>@hostB:<path of file in B> .
มันบอกว่า:
scp: <path of file in B>: No such file or directory
แต่บนเครื่อง B ไฟล์นี้มีอยู่ในเส้นทางนี้
เกิดอะไรขึ้น?
ฉันอยู่บนเครื่อง A และต้องการดึงไฟล์จากเครื่อง B
A$ scp <myuserid>@hostB:<path of file in B> .
มันบอกว่า:
scp: <path of file in B>: No such file or directory
แต่บนเครื่อง B ไฟล์นี้มีอยู่ในเส้นทางนี้
เกิดอะไรขึ้น?
คำตอบ:
คุณไม่ได้ระบุไฟล์ใด ๆ : คุณต้องเพิ่มไฟล์ (ด้วยพา ธ ) หลังโคลอน:
A$ scp <myuserid>@hostB:/absolutepath/file .
หรือ
A$ scp <myuserid>@hostB:relativepath/file .
สำหรับพา ธ ที่สัมพันธ์กับโฮมไดเร็กตอรี่ของคุณ
หากคุณไม่ได้ระบุผู้ใช้อื่น (เช่นผู้ใช้ใน A และ B เหมือนกัน) คุณไม่จำเป็นต้องใช้ @
A$ scp hostB:/path/file .
$ scp username@remoteip:remote_location_file /location/where/you/save
ใช้ได้เฉพาะเมื่อคุณคัดลอกไฟล์ ถ้าคุณต้องการคัดลอกไดเรกทอรีใช้
$ scp -r username@remoteip:remote_location_directory /location/where/you/save
ตัวเลือกที่คุณอาจใช้ตามความต้องการของคุณ
-P พอร์ต
ระบุพอร์ตที่จะเชื่อมต่อกับบนโฮสต์ระยะไกล โปรดทราบว่าตัวเลือกนี้เขียนด้วยตัวพิมพ์ใหญ่ "P" เนื่องจาก -p ถูกสงวนไว้สำหรับการรักษาเวลาและโหมดของไฟล์ใน rcp แล้ว
-p
รักษาเวลาการแก้ไขเวลาการเข้าถึงและโหมดจากไฟล์ต้นฉบับ
-r
ซ้ำไดเรกทอรีทั้งหมด
-v
โหมด verbose ทำให้ scp และ ssh พิมพ์ข้อความดีบั๊กเกี่ยวกับความคืบหน้า สิ่งนี้มีประโยชน์ในการแก้จุดบกพร่องการเชื่อมต่อการรับรองความถูกต้องและปัญหาการกำหนดค่า
ใช้เส้นทาง scp ที่เหมาะสม
scp ssh://user@hostname/tmp/foo.txt .
คุณสามารถระบุพา ธ ไฟล์ที่สัมพันธ์กับโฮมไดเร็กตอรี่ของคุณหรือพา ธ ไฟล์ที่แน่นอน ตัวอย่างเช่นหากfoo.txt
อยู่ในไดเรกทอรีที่เรียกว่าdocs
ภายใต้ไดเรกทอรีบ้านของคุณและbar.txt
อยู่ใน/var/tmp
คุณสามารถทำได้
scp username@host.example.com:docs/foo.txt .
scp username@host.example.com:/var/tmp/bar.txt .
โปรดทราบว่าหากชื่อไฟล์มีอักขระที่พิเศษสำหรับเปลือกระยะไกล (โดยทั่วไปคือช่องว่างหรือ!"#$&'*;<>?[\]^`{|}~
) คุณจะต้องหลบหนีพวกเขาสำหรับเปลือกระยะไกลนอกเหนือจากการหลบหนีพวกเขาสำหรับเปลือกท้องถิ่น ตัวอย่างเช่นหากไฟล์ถูกเรียกใช้foo bar.txt
และอยู่ในโฮมไดเร็กทอรีของคุณ:
scp username@host.example.com:'foo\ bar.txt' .
หากคุณมีปัญหากับไฟล์ที่มีอักขระเครื่องหมายวรรคตอนให้ลองใช้sftp
แทนscp
การถ่ายโอน หรือใช้วิธีการที่สะดวกยิ่งขึ้นถ้าคุณสามารถใช้FUSE : ติดตั้งระบบไฟล์ของเครื่องระยะไกลโดยใช้sshfsแล้วใช้คำสั่งการจัดการไฟล์ธรรมดา
mkdir host.example.com
sshfs username@host.example.com:/ host.example.com
cp host.example.com/path/to/file .
หนึ่งสามารถ SCP ได้อย่างง่ายดายถ้ามี DMZ ผู้ใช้และรหัสผ่านคุณอยู่ที่เครื่องของคุณ: จาก DMZ ไปยังเครื่องลินุกซ์ในท้องถิ่นของคุณ (ดึง) หมายถึงคัดลอก abc.text ภายใน folder2 ไปยัง PWD ที่คุณลงชื่อเข้าใช้ปัจจุบัน
scp user@111111:folder1/folder2/abc.txt .
มันจะขอรหัสผ่าน
นั่นคือทั้งหมด
ตอนนี้คุณต้องการส่งโฟลเดอร์จะโฟลเดอร์ย่อยและไฟล์จากเครื่องท้องถิ่นของคุณไปยัง DMZ:
usr @ localmachine: ~ / abc / defs> scp -r folder / usr @ 111111: vkrishna / docker /
รหัสผ่านจะถูกถามอีกครั้ง
: เป็นโฟลเดอร์รูทของเครื่องระยะไกลและ vkrishna เป็นโฟลเดอร์ที่มี & โฟลเดอร์ย่อย docker อีกครั้ง ภายในโฟลเดอร์ defs มีโฟลเดอร์ชื่อ "โฟลเดอร์" ที่เราต้องการถ่ายโอนอย่างสมบูรณ์
กดไลค์ / abc / defs /