How do I use sftp to get a directory and all its contents?

55,873

You can connect to the host using sftp -r and then get the directory. If you forget to use -r when you connect, you can use get -r.

sftp -r me@somehost

Or

sftp> get -r tmp/
Fetching /home/me/tmp/ to tmp
Retrieving /home/me/tmp
/home/me/new.orig.dmp            100%  417KB 416.8KB/s   00:00    
/home/me/untangle.dmp        100%  398KB 398.3KB/s   00:00    
/home/me/repos.orig.dmp          100%  415KB 415.2KB/s   00:00    
/home/me/me-untangle.dmp 100%   32KB  32.4KB/s   00:00    
sftp>

If you want to always ensure you pass -r to sftp, add it as an alias to your ~/.bashrc or similar.

alias sftp="sftp -r"

From man 1 sftp

 -r      Recursively copy entire directories when uploading and download‐
         ing.  Note that sftp does not follow symbolic links encountered
         in the tree traversal.
         .........

 get [-Ppr] remote-path [local-path]
         ........
         If either the -P or -p flag is specified, then full file permis‐
         sions and access times are copied too.
         If the -r flag is specified then directories will be copied
         recursively.  Note that sftp does not follow symbolic links when
         performing recursive transfers.
Share:
55,873

Related videos on Youtube

Paul
Author by

Paul

Senior Aerospace Engineer Specialties: Multiphysics Modeling and Simulation Heterogeneous Multiscale Methods Computational Orbital Mechanics Computational Electromagnetics Computational Solid Mechanics Computational Fluid Dynamics Computational Heat Transfer Finite Difference Methods Computational Robotics Finite Element Methods Finite Volume Methods Numerical Analysis Calculus Jokes Analogies Education: PhD. Computational Science M.S. Computational Science M.S. Applied Mathematics B.S. Mathematics and Spanish Past: Computational Scientist Thermal Engineer NASA Intern NSF Fellow Lecturer.

Updated on September 18, 2022

Comments

  • Paul
    Paul over 1 year

    When I try to use the command get from sftp, I get the error saying that it is not a normal file. Is there a way around this?

    • Admin
      Admin almost 12 years
      I think you're right... it is a duplicate... but the answer given by @uther is more thorough than the answer given before to the other question... Is there a way to post his answer onto the other question. Since my question is so similarly, feel free to delete my question but please repost his answer on the other question.
  • C.C.
    C.C. over 11 years
    why does not my sftp client didn't has a -r option? >>>>>sftp: illegal option -- r
  • CrackerJack9
    CrackerJack9 over 10 years
    sftp: illegal option -- r on CentOS 6.4 openssh-clients-5.3p1-84.1.el6.x86_64
  • Supravat Mondal
    Supravat Mondal about 9 years
    in my ubuntu OS , its working.