คำสั่ง sftp เพื่อรับ / ดาวน์โหลดไฟล์. tar.gz


16

ฉันคิดว่าฉันคุ้นเคยกับsftpคำสั่งในระบบปฏิบัติการยูนิกซ์และมากถึงความรู้ของฉันคำสั่งที่ใช้ในการดาวน์โหลดcompressedไฟล์จากเซิร์ฟเวอร์คือ

sftp รับ filename.tar.gz

แต่เมื่อฉันลองคำสั่งนี้ไฟล์จะว่างเปล่าฉันหมายความว่าขนาดไฟล์จะเป็น 0 และฉันไม่รู้ว่าทำไมมันถึงเกิดขึ้น มีคำสั่งอื่นสำหรับ.tar.gzชนิดของไฟล์โดยเฉพาะหรือไม่ ขั้นตอนในการรับไฟล์บีบอัดนี้คืออะไร ฉันใช้ขั้ว mac


2
คุณไม่ต้องรวมที่อยู่เซิร์ฟเวอร์หรือไม่ คำสั่งที่แน่นอนที่คุณพิมพ์คืออะไร?
Faheem Mitha

@FaheemMitha ฉันได้เข้าสู่เซิร์ฟเวอร์โดยใช้คำสั่ง sftp ผู้ใช้ sftp [ที่] เซิร์ฟเวอร์และในเทอร์มินัล sftp ฉันใช้> get filename.tar.gz
GIRI

คำตอบ:


24

get เป็นคำสั่ง sftp ที่ถูกกฎหมาย แต่ไม่สามารถใช้แบบนั้นได้

ไวยากรณ์ที่ถูกต้องเพื่อดาวน์โหลดfilename.tar.gzไปยัง Mac ของคุณคือ:

sftp user@host:/path/to/filename.tar.gz /some/local/folder

(แทนที่userด้วยผู้ใช้ที่คุณใช้เชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลแทนที่hostด้วยชื่อเซิร์ฟเวอร์ระยะไกล)

ไม่มีสิ่งใดเป็นพิเศษสำหรับtar.gzไฟล์ในคำสั่งด้านบนมันเป็นเรื่องทั่วไปสำหรับส่วนขยายใด ๆ

ในการใช้งานgetคุณต้องเข้าสู่โหมดโต้ตอบก่อน:

  1. ทำการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกล:

    sftp user@host
    

    รอจนกระทั่ง>ข้อความแจ้งเตือน sftp ปรากฏขึ้นในบรรทัดใหม่ - ตอนนี้คุณสามารถพิมพ์คำสั่งของคุณได้แล้ว

  2. เปลี่ยนเส้นทางระยะไกลเป็น/path/to:

    cd /path/to/
    
  3. เปลี่ยนเส้นทางท้องถิ่นเป็น/some/local/folder:

    lcd /some/local/folder
    
  4. ใช้getเพื่อดาวน์โหลดไฟล์:

    get filename.tar.gz
    

ไม่ฉันลองใช้คำแนะนำของคุณแล้ว ลองเปลี่ยนเส้นทางท้องถิ่น แต่ไม่มีผล
GIRI

คุณสามารถโพสต์เอาต์พุตของคำสั่ง sftp ได้หรือไม่?
Jaume

ไม่มีสิ่งที่เป็นประเภทเอาท์พุทเช่นพิมพ์sftp > get filename.tar.gzไฟล์ที่ไม่ได้รับการดาวน์โหลดและหน่วยความจำกลายเป็น 0
GIRI

ไม่sftp > get filename.tar.gzว่าจะโพสต์ในคำถามของคุณsftp get filename.tar.gzจะไม่ทำงาน ไวยากรณ์ที่ถูกต้องคือsftp user@host:/path/to/filename.tar.gz /some/local/folderตามที่อธิบายไว้ในคำตอบของฉัน จะเกิดอะไรขึ้นเมื่อคุณพิมพ์คำสั่ง (แทนที่user, host, /path/toและ/some/local/folderที่มีค่าที่ถูกต้องในสภาพแวดล้อมของคุณ) ในเทอร์มิแล้วกด Enter? มีการส่งออกใด ๆ ถ้าเป็นเช่นนั้นโปรดเพิ่มลงในคำถามของเรา
Jaume

ไม่มีเอาต์พุต มันเพิ่งจะไปที่บรรทัดถัดไป
GIRI

0

นี่เป็นอีกวิธีหนึ่งหากคุณเข้าสู่เซสชัน sftp แล้ว

ถ้าคุณได้รับ:

sftp> get my-file.txt
get: failed to download /home/user/my-file.txt. Access is denied. 

คุณอาจพิจารณาว่าในพื้นที่คุณมีสิทธิ์ในการเขียนหรือไม่ วิธีตรวจสอบตำแหน่งที่จะดาวน์โหลดไฟล์ทำ:

sftp> lpwd
C:\Users\user1\Documents

โดยทั่วไป "เอกสาร" ไม่ได้รับอนุญาต ดังนั้นเปลี่ยนดาวน์โหลด dir เป็นC:\tmp:

sftp> lcd C:\tmp
sftp> get my-file.txt
    Downloading my-file.txt from /home/user/my-file.txt
    1% 437123KB    620KB/s 00:00:41 ETA

เสร็จสิ้น

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