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?
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
sftp -r me@somehost
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
sftp, add it as an alias to your
~/.bashrc or similar.
alias sftp="sftp -r"
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.